Foros del Web » Programando para Internet » PHP »

error tonto.. pero no esmi día

Estas en el tema de error tonto.. pero no esmi día en el foro de PHP en Foros del Web. Hola foro... estoy desesperado... me está dando este error un simple while... Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /home/webcindario/fiesta-amigos/principal/fotos.php ...
  #1 (permalink)  
Antiguo 28/03/2005, 08:52
Avatar de X3mdesign  
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 649
Antigüedad: 20 años, 6 meses
Puntos: 2
error tonto.. pero no esmi día

Hola foro... estoy desesperado... me está dando este error un simple while...

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /home/webcindario/fiesta-amigos/principal/fotos.php on line 17

y éste es el código...

Código PHP:
$contenido=mysql_query("SELECT * FROM `$seccion`");
    
while(
$datos=mysql_fetch_row($contenido)){


seguro que es una chorrada...pero estos días de fiesta me han sentado fatal bueno, los días nop, sino el regreso

gracias!!!!
__________________
Nippon-Tour, tu portal sobre Japón
¿Te gusta el manga, haces tus propios dibujos? Visita FanArt de Nippon-Tour
  #2 (permalink)  
Antiguo 28/03/2005, 09:01
 
Fecha de Ingreso: diciembre-2003
Mensajes: 1.583
Antigüedad: 20 años, 3 meses
Puntos: 13
¿Qué es '$seccion'? ¿tu tabla?
__________________
El conocimiento es libre: Movimiento por la Devolución
  #3 (permalink)  
Antiguo 28/03/2005, 09:12
Avatar de X3mdesign  
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 649
Antigüedad: 20 años, 6 meses
Puntos: 2
sip.. también he probado a poner el nombre sin usar el paso de variables pur URL... y nada...
__________________
Nippon-Tour, tu portal sobre Japón
¿Te gusta el manga, haces tus propios dibujos? Visita FanArt de Nippon-Tour
  #4 (permalink)  
Antiguo 28/03/2005, 09:20
 
Fecha de Ingreso: febrero-2005
Mensajes: 28
Antigüedad: 19 años, 2 meses
Puntos: 0
Te ha funcionado poner el nombre de la tabla directamente? Si lo que quieres hacer es mostrar el contenido de la tabla, mejor utiliza mysql_fetch_array
  #5 (permalink)  
Antiguo 28/03/2005, 09:29
Avatar de X3mdesign  
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 649
Antigüedad: 20 años, 6 meses
Puntos: 2
Gracias Jon4... pero me sigue dando el mismo error...

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/webcindario/fiesta-amigos/principal/fotos.php on line 17

por cierto qué ventaja tiene este método sobre el otro?? ya es por aprender más ;)
__________________
Nippon-Tour, tu portal sobre Japón
¿Te gusta el manga, haces tus propios dibujos? Visita FanArt de Nippon-Tour
  #6 (permalink)  
Antiguo 28/03/2005, 10:12
 
Fecha de Ingreso: diciembre-2003
Mensajes: 1.583
Antigüedad: 20 años, 3 meses
Puntos: 13
Utiliza la funcion mysql_error() para saber exactamente cuál es el error que te está dando:

$contenido=mysql_query("SELECT * FROM `$seccion`") or die(mysql_error());

while($datos=mysql_fetch_row($contenido) or die(mysql_error())){

}
__________________
El conocimiento es libre: Movimiento por la Devolución
  #7 (permalink)  
Antiguo 28/03/2005, 10:21
Avatar de X3mdesign  
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 649
Antigüedad: 20 años, 6 meses
Puntos: 2
sigue apareciendo el mismo error...

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/webcindario/fiesta-amigos/principal/fotos.php on line 17

curiosos.... verdad??
__________________
Nippon-Tour, tu portal sobre Japón
¿Te gusta el manga, haces tus propios dibujos? Visita FanArt de Nippon-Tour
  #8 (permalink)  
Antiguo 28/03/2005, 11:35
 
Fecha de Ingreso: diciembre-2003
Mensajes: 1.583
Antigüedad: 20 años, 3 meses
Puntos: 13
doutch ya caché lo que podría ser (a no ser que haya sido un error de tipeo al postear tu codigo):

"SELECT * FROM `$seccion`"

Fíjate, en $seccion no estás usando comillas simples, sino que una especie de acento francés (no me acuerdo cual era el nombre).

fijate en la diferencia cuando usas comillas simples.

"SELECT * FROM '$seccion'"
__________________
El conocimiento es libre: Movimiento por la Devolución
  #9 (permalink)  
Antiguo 28/03/2005, 11:41
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por frijolerou
Utiliza la funcion mysql_error() para saber exactamente cuál es el error que te está dando:

$contenido=mysql_query("SELECT * FROM `$seccion`") or die(mysql_error());

while($datos=mysql_fetch_row($contenido) or die(mysql_error())){

}
Usa lo que te está proponiendo .. así veras el error exacto que tienes y en consecuencia podrás darle solución.

No lo uses en:
while($datos=mysql_fetch_row($contenido) or die(mysql_error())){
(con el otro "mysql_error()" ya observaras el error)

Ese acento "frances" .. no es obligatorio pero si recomendable usarlo para nombrar tablas/nombres de campos que pudieran ser palabras reservadas de Mysql.

Otro detalle ..
$seccion .. de donde viene? .. si llega del URL o un formulario .. usa el array superglobal del método que entre: $_POST .. $_GET .. etc.

Un saludo,
  #10 (permalink)  
Antiguo 29/03/2005, 02:00
Avatar de X3mdesign  
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 649
Antigüedad: 20 años, 6 meses
Puntos: 2
bueno, ya he conseguido aislar el error... después del while he pasado a variables el resultado de la fila leída... de este modo para luego poder usar los contenido más facilemte:

Código PHP:
$num=$datos[0];
    
$titulo=$datos[1];
    
//$contenido=$datos[2];
    
$imagen=$datos[3];
    
$pie_foto=$datos[4];
    
$lecturas=$datos[5];
    
$comentarios=$datos[6]; 
la línea comentada es donde da el error... el campo en cuestión es 'longtext'.. tendrá algo que ver??

muchas gracias!!!
__________________
Nippon-Tour, tu portal sobre Japón
¿Te gusta el manga, haces tus propios dibujos? Visita FanArt de Nippon-Tour
  #11 (permalink)  
Antiguo 29/03/2005, 06:40
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pero que "error" tienes en $contenido? ..

Un saludo,
  #12 (permalink)  
Antiguo 29/03/2005, 07:16
Avatar de X3mdesign  
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 649
Antigüedad: 20 años, 6 meses
Puntos: 2
pues el que ha salido siempre...

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/webcindario/fiesta-amigos/principal/fotos.php on line 17


la cuestión es que la línea 17 es la del while...
__________________
Nippon-Tour, tu portal sobre Japón
¿Te gusta el manga, haces tus propios dibujos? Visita FanArt de Nippon-Tour
  #13 (permalink)  
Antiguo 29/03/2005, 07:42
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
X3mdesign

Y que código exacto estas usando actualmente .. ¿Has probado todas las sugerencias que te realizé sobre el uso de mysql_error() ?.. por qué es la única manera de ver el mensaje concreto y exacto de error que tienes .. sea a nivel de SQL o de conexión.

Un saludo,
  #14 (permalink)  
Antiguo 29/03/2005, 07:59
Avatar de X3mdesign  
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 649
Antigüedad: 20 años, 6 meses
Puntos: 2
he probado a poner el "or die" en los dos sitio, en uno sí y otro nop y al revés... y el error es el mismo siempre, sólo cuando comento la línea esa no apareece y realiza bien las repeticiones del while... este e smi código actual:

Código PHP:
<?php
    $contenido
=mysql_query("SELECT * FROM `$seccion`");
    
    
// campos de la tabla amigos:  id, titulo, contenido, imagen, pie_foto, lecturas, comentarios
    
while($datos=mysql_fetch_row($contenido) or die (mysql_error())){
    
$num=$datos[0];
    
$titulo=$datos[1];
    
//$contenido=$datos[2];
    
$imagen=$datos[3];
    
$pie_foto=$datos[4];
    
$lecturas=$datos[5];
    
$comentarios=$datos[6];
    
    
//título para envio del articulo
    
$link=urlencode("$PHP_SELF?seccion=$seccion&num=$num");
 
?>
<table width="100%" border="0" cellpadding="5" cellspacing="0" bgcolor="<?php echo $color3?>">
    <tr><td bgcolor="<?php echo $color1?>"><strong><font color="#FFFFFF" size="1" face="Arial"><?php echo $titulo?></font></strong></td></tr>
    <tr><td valign="top">
        <table width="100%" border="0" cellpadding="5" cellspacing="0">
            <tr><td><?php linea(100,1,$color1); ?></td></tr>
            <tr><td valign="top"><p align="justify"> 
                    <?php 
                    colocarFoto
($seccion,$imagen,"left",$color1,$pie_foto); 
                    
//echo $contenido;
                    
echo $datos[2];
                    
?>                    
            </td></tr>
            <tr><td valign="top">
                <table width="100%" border="0" cellpadding="0" cellspacing="5" bgcolor="#F8F8F8">
                 <tr align="center">
                      <td><a href="<?php echo "$PHP_SELF?seccion=Comentarios&tema=$seccion&num=$num"?>">Comentarios (<?php echo $comentarios?>)</a></td>
                      <td width="1" bgcolor="<?php echo $color1?>"></td>
                      <td><?php enviarAmigo($titulo,$link); ?></td>
                      <td width="1" bgcolor="<?php echo $color1?>"></td>
                      <td><?php imprimir($seccion,$num); ?></td>
                    </tr>
                  </table>
                </td></tr>
                <tr><td><?php linea(100,1,$color1); ?></td></tr>
            </table>
        </td></tr>
      </table>
      <?php linea(100,2,$color1); ?>
      <p></p>
      <?php ?>
<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td></td><td><div align="right"><a href=#top>Subir</a></div></td></tr></table>
cuando "descomento": //$contenido=$datos[2]; me aparece el error:

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /home/webcindario/fiesta-amigos/principal/fotos.php on line 17

después del primer registro del while... por cierto, el campo lo cambié a mediumtext por "siaca" y tampoco es por eso...

gracias por el interés!!!
__________________
Nippon-Tour, tu portal sobre Japón
¿Te gusta el manga, haces tus propios dibujos? Visita FanArt de Nippon-Tour
  #15 (permalink)  
Antiguo 29/03/2005, 08:20
 
Fecha de Ingreso: febrero-2004
Ubicación: Bogotá, Colombia
Mensajes: 191
Antigüedad: 20 años, 2 meses
Puntos: 1
La mayoria de veces q sale este error es xq el resultSet($contenido) llega vacio al while. Colocando un mysql_error() no arrojara nada xq la consulta esta bien hecha. Lo q puede hacer es preguntar si viene vacio el $contenido, con la funcion mysql_num_rows() lo puede saber, ahora, si entra al while es xq tiene datos sino se sale y en vez de poner numeros en $datos escriba el nombre de los campos de la tabla para ver si en algun campo de pronto esta el error
  #16 (permalink)  
Antiguo 29/03/2005, 08:33
Avatar de X3mdesign  
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 649
Antigüedad: 20 años, 6 meses
Puntos: 2
hola Andrecito, no te entiendo muy bien lo que quieres que pruebe para ver si se soluciona... pero la cuestión es que si en vez de meter a $datos[2] en la variable $contenido lo que hago es hacer un "echo" directamente de $datos[2] no da ningún tipo de error... así que yo creo que no es que llegue vacío... si no que no le da la gana salir bien (Ò_ó)

gracias again!!!
__________________
Nippon-Tour, tu portal sobre Japón
¿Te gusta el manga, haces tus propios dibujos? Visita FanArt de Nippon-Tour
  #17 (permalink)  
Antiguo 29/03/2005, 08:41
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
usalo así:

Código PHP:
$contenido=mysql_query("SELECT * FROM `$seccion`") or die (mysql_error()); 
     
    
// campos de la tabla amigos:  id, titulo, contenido, imagen, pie_foto, lecturas, comentarios 
    
while($datos=mysql_fetch_row($contenido)){ 
Ese "$seccion" NO DEBERIAS trabajarlo así . .(pasando un nombre de una tabla por el URL) . .sin más validación .. así puedes tener muchos problemas, junto con el uso de $row[x] (siento X numérico el orden de los campos de tu tabla) .. así podrías ver "otras" tablas de tu BD con tan sólo alterar el URL que usas para pasar esa "secion" ..

Otro detalle .. ¿usas una tabla para cada "sección"? ..

Un saludo,
  #18 (permalink)  
Antiguo 29/03/2005, 08:53
Avatar de X3mdesign  
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 649
Antigüedad: 20 años, 6 meses
Puntos: 2
con ese código da el mismo error:

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /home/webcindario/fiesta-amigos/principal/fotos.php on line 18

En cuanto a las otra cuestiones.... pensé que ese es el método más usado... la web se carga modularmente con un include dependiendo la sección que se haya pinchado... (mi portal de Nippon-Tour, lo tengo así tambien es peligroso??)

Y sip... tengo prvisto usar una tabla por caa sección ya que no todas las secciones serán iguales y no tendrán el mismo nº de campos ni coincidirán todos los nombres... qué método me recomiendas??

Gracias Cluster!!
__________________
Nippon-Tour, tu portal sobre Japón
¿Te gusta el manga, haces tus propios dibujos? Visita FanArt de Nippon-Tour
  #19 (permalink)  
Antiguo 29/03/2005, 08:59
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Ahora creo que ví el problema ..

Tienes:
$contenido=mysql_query("SELECT * FROM `$seccion`") or die (mysql_error());

y luego haces:
while($datos=mysql_fetch_row($contenido)){
$contenido=$datos[?]

Eso no es correcto .. Fijate que mientras estás intentando recorrer $contenido (que es un resultado) .. pretendes asignaro a otra cosa? .. usa algo tipo:

$resultado=mysql_query("SELECT * FROM `$seccion`") or die (mysql_error());

while($datos=mysql_fetch_row($resultado)){

Y usa mysql_num_rows() para "preguntar" si tu consulta arroja resultados antes de pretender leerlos:

Código PHP:
if (mysql_num_rows($resultado)){
   while(
$datos=mysql_fetch_row($resultado)){
     
// etc ...
   
}
} else {
   echo 
"NO hay resultados";

Un saludo,
  #20 (permalink)  
Antiguo 29/03/2005, 09:14
Avatar de X3mdesign  
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 649
Antigüedad: 20 años, 6 meses
Puntos: 2
Gracias Cluster... ya sabía que debía ser un error tonto ... pero no dar con ello ... y marearos con el tema ... me saca más de quicio...

efectivamente, tienes razón el error viene dado porque uso el mismo nombre de variable... gracias a todos!!!!! y perdonad ...
__________________
Nippon-Tour, tu portal sobre Japón
¿Te gusta el manga, haces tus propios dibujos? Visita FanArt de Nippon-Tour
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:32.