Foros del Web » Programando para Internet » PHP »

Ayuda con error

Estas en el tema de Ayuda con error en el foro de PHP en Foros del Web. Hola: Tengo el siguiente código para paginar los resultados sacados de una BD: Código PHP: <? $coneccion  =  mysql_connect ( "localhost" , "" , "" ...
  #1 (permalink)  
Antiguo 17/07/2003, 20:28
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 15 años
Puntos: 1
Ayuda con error

Hola:
Tengo el siguiente código para paginar los resultados sacados de una BD:
Código PHP:
<?
$coneccion 
mysql_connect("localhost","","") || die ("Error");
mysql_select_db("mybd");
IF (
$num>0
 {
   
$n=$num;} ELSE { $n=0
 }
 
$conta="SELECT id FROM db ";
 
$result2 mysql_query($conta); 
 
$quants mysql_num_rows($result2);
 
$sql="SELECT * FROM db ORDER BY id DESC LIMIT ".$n.", 15 ";
 
$result=mysql_query($sql,$conexio);
if (
$row mysql_fetch_array($result))
 {
  echo 
"<TABLE BORDER='0'>";
   DO
    { 
     echo 
"<TR><TD> ".$row["documento"]."</TD> </TR>";
    }
  WHILE (
$row=mysql_fetch_array($result));
  echo 
"</TABLE>";
 } 
echo 
"<HR><TABLE BORDER='0' ALIGN='center' WIDTH='95%'><TR>";
echo 
"<TD ALIGN='left'> Encontrados ".$quants." artículos </TD>";
echo
"<TD ALIGN='RIGHT'>";
echo 
"<FONT FACE='Arial' SIZE='-1' COLOR='#336699'>Páginas: </FONT>";
FOR (
$i=0$i$quants$i=$i+15)
 {
  
$a=$a+1//Incrementamos el número de página
   
IF ($n==$i
    {
      echo 
"<A HREF='doc.php?num=".$i."'>[<B>".$a."< /B>]   </A> ";
    }
   ELSE
   {
     echo 
"<A HREF='doc.php?num=".$i."'>' [".$a."] </A> ";
   }
 }
  echo 
"</TD></TR></TABLE>"
 
mysql_close(); 
?>
y me da estos errores:

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in c:\program files\apache group\apache\htdocs\pagina.php on line 18

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\program files\apache group\apache\htdocs\pagina.php on line 20

¿Qué hago mal?
__________________
Ing. Reynier Pérez Mira
  #2 (permalink)  
Antiguo 17/07/2003, 20:36
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 15 años, 10 meses
Puntos: 5
Los datos de la BD, el usuario y el password son correctos? o simplemente lo copiaste como estaba???
__________________
Manoloweb
  #3 (permalink)  
Antiguo 17/07/2003, 20:39
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 15 años
Puntos: 1
Duda con eso...

Hay tengo una dudita ManoloWeb pues mi servidor de Base de Datos MySQL dice que tiene user: root y password:reynier pero si le pongo esos valores a la página de la conección me da error. Por qué ¿no sé? He probado con el MySQL Front y me pasa lo mismo.
__________________
Ing. Reynier Pérez Mira
  #4 (permalink)  
Antiguo 17/07/2003, 20:46
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 15 años, 10 meses
Puntos: 5
Prueba root sin password
__________________
Manoloweb
  #5 (permalink)  
Antiguo 17/07/2003, 20:49
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 15 años
Puntos: 1
Ayuda

Me sigue dando los mismos errores de ahorita.
__________________
Ing. Reynier Pérez Mira
  #6 (permalink)  
Antiguo 18/07/2003, 15:27
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

Bienvenidos al orden de precedencia de los operadores. PHP tiene dos operados para el "o logico": OR y || (lo mismo pasa para el "y logico"). La unica diferencia entre ambos es el orden de precedencia que tienen: http://www.php.net/manual/en/languag...ors.precedence

El problema que tienes es en esta linea
Código PHP:
$coneccion mysql_connect("localhost","","") || die ("Error"); 
Como usas || lo que realmente estas haciendo es:
Código PHP:
$coneccion = (mysql_connect("localhost","","") || die ("Error")); 
Es decir, asignas a $coneccion el valor de hacer un "o logico" entre el mysql_connect() y el die() (como PHP evalua por cortocircuito solo ejecuta el die() si mysql_devuelve falso). Como aigna el "o logico", lo que asigna es TRUE o FALSE, no el valor devuelto por mysql_connect(), por eso te da error al usar $coneccion.

Si te fijas en el manual, lo que hacen es:
Código PHP:
$coneccion mysql_connect("localhost","","") OR die ("Error"); 
que es equivalente a hacer con ||:
Código PHP:
($coneccion mysql_connect("localhost","","")) || die ("Error"); 
Es decir, primero asigna el valor devuelto por mysql_connect() a $coneccion, y luego hace el "o logico" de los dos valores (otra vez por lo de cortocircuito, solo se ejecuta el die si mysql_connect() devuelve false). Como coneccion tiene ahora el valor devuelto por mysql_connect(), ahora no dara fallo al usarlo.

Ya veis como un pequeño detalle puede crear grandes problemas si no sabes donde mirar.

Recuerda: usa
Código PHP:
$coneccion mysql_connect("localhost","","") OR die ("Error"); 
Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #7 (permalink)  
Antiguo 18/07/2003, 19:09
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 15 años
Puntos: 1
Gracias

Gracias Josemi no sabía eso. Ya me funciona correctamente.
__________________
Ing. Reynier Pérez Mira
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 00:03.