Foros del Web » Programando para Internet » PHP »

Error al acceder a la DB.

Estas en el tema de Error al acceder a la DB. en el foro de PHP en Foros del Web. Soy nuevo en mySQL y estoy intentando hacer una pekeña base de datos con informacion sobre gente, con su nick, nombre, ciudad, edad, etc... Entonces ...
  #1 (permalink)  
Antiguo 16/03/2003, 12:30
Avatar de mdk
mdk
 
Fecha de Ingreso: noviembre-2002
Mensajes: 531
Antigüedad: 15 años, 1 mes
Puntos: 11
Error al acceder a la DB.

Soy nuevo en mySQL y estoy intentando hacer una pekeña base de datos con informacion sobre gente, con su nick, nombre, ciudad, edad, etc... Entonces busco los nicks que contengan unas determinadas letras, me busca todos los nicks ke contenga x ejemplo las letras an, pero me muestra todos excepto el primero ke aparece en la db, y si realizo una buskeda a un nick determinado ke se ke existe en la db, me dice ke no existe, o me muestra el siguiente nick ke contiene esas letras. ¿Alguien sabe a ke se puede deber ke me ignore el primer campo de la buskeda para impedir mostrarlo posteriormente?

El codigo ke tengo puesto es este.

Código PHP:
    include ("../php/conect_db.php");
    if (
$nickname) { 
        if (
$nickname=="0") { $result=mysql_db_query("dbname","SELECT * FROM dbnicks WHERE Nick LIKE '%0%' AND Sexo='$sexo'"); }
        else { 
$result=mysql_db_query("dbname","SELECT * FROM dbnicks WHERE Nick LIKE '%$nickname%' AND Sexo='$sexo'"); }
    }
    else { 
$result=mysql_db_query("dbname","SELECT * FROM dbnicks WHERE Nick LIKE '%' AND Sexo='$sexo'"); }
           if (!
$result) { echo $error; }
    else { 
        if (!
mysql_fetch_array($result)) { echo $error; }
        while(
$row=mysql_fetch_array($result)) { echo "<font color=\"#FFFF00\" face=\"Verdana\" size=\"1\">Nick: $row[1]</font><br>"; } 
    } 
Para aclarar mas, mi tabla contiene los nicks:

Pedro, Edy, manuel, Cedra, Mesdri

Entonces si le pongo ke buske los nicks ke contengan ed, me deberia de mostrar Pedro, Edy, Cedra pero me muestra solo Edy y Cedra. A ke se puede deber esto?

Gracias por la ayuda de antemano.
__________________
SoY Lo Ke VeS iNKLuSo KuAnDo No Me VeS ;)
  #2 (permalink)  
Antiguo 16/03/2003, 14:41
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

Pues claro que no te muestra el primero. Por que estas llamando mysql_fetch_array() una vez de mas, en el if:
Código PHP:
        if (!mysql_fetch_array($result)) { echo $error; }

        while(
$row=mysql_fetch_array($result)) { echo "<font color=\"#FFFF00\" face=\"Verdana\" size=\"1\">Nick: $row[1]</font><br>"; } 
El primer mysql_fetch_array() (en el if) lee el primer registro. Luego el while comienza cogiendo el segundo registro y lo muestra. Y continua con los siguientes.

Realmente no se que quieres hacer con el if (!mysql_fetch_array ... porque tal como lo tienes solo muestra $error si no hay ningun registro. Si eso es lo que quieres cambialo por:
Código PHP:
if (0==mysql_num_rows($result)) {echo $error; } 
Espero haber sido de ayuda.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
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 19:19.