Foros del Web » Programando para Internet » PHP »

Error al devolver datos

Estas en el tema de Error al devolver datos en el foro de PHP en Foros del Web. Hola a todos, resulta que quiero obtener un listado de datos de un registro de una base de datos MySql y para ello quiero realizar ...
  #1 (permalink)  
Antiguo 09/08/2007, 09:34
 
Fecha de Ingreso: agosto-2007
Mensajes: 15
Antigüedad: 16 años, 8 meses
Puntos: 0
Error al devolver datos

Hola a todos, resulta que quiero obtener un listado de datos de un registro de una base de datos MySql y para ello quiero realizar una consulta. Consiste en introducir tu dni en un formulario y que te devuelva los datos del registro de ese dni.

La consulta que realizo es esta:

Código PHP:
$res $db->sql_query("select * from nuke_pujada07 where dni='$_POST[dni]'") or die(mysql_error());
            While (
$row=mysql_fetch_array($res)){
               echo 
"Campo nombre: ".$row['uname']; 
Y no me devuelve nada.

Si imprimo la variable $res me muestra este error "Resource id #73".

Por supuesto que el registro que le paso por el formulario existe en la base de datos.

¿Que hago mal? ¿Hay alguna forma mas facil de hacer esto que quiero?

Un saludo y gracias de antemano.
  #2 (permalink)  
Antiguo 09/08/2007, 09:42
 
Fecha de Ingreso: julio-2003
Ubicación: Colombia
Mensajes: 591
Antigüedad: 20 años, 9 meses
Puntos: 7
Re: Error al devolver datos

Prueba este...

Código PHP:
$res $db->sql_query("select * from nuke_pujada07 where dni='$_POST[dni]'") or die(mysql_error());
            while (
$row=mysql_fetch_row($res)){
               echo 
"Campo nombre: ".$row[0]; 

Chaop!
__________________
Visita www.legionlandrover.com
  #3 (permalink)  
Antiguo 09/08/2007, 09:49
 
Fecha de Ingreso: agosto-2007
Mensajes: 2
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: Error al devolver datos

Prueba con esto:

$numero=$_POST['dni']; /*Guardamos el DNI*/

$sql="SELECT * FROM tabla where dni=$dni"; $resul=mysql_query($sql);

while ($arr_resul= mysql_fetch_array($resul)) /*Guardamos el resultado en un array y lo vamos recorriendo hasta llegar al final*/
{
echo "Nombre: $arr_resul[0]";
echo "Apellido: $arr_resul[1]";
echo "Domicilio: $arr_resul[2]";
echo "Telefono: $arr_resul[3]";
}
  #4 (permalink)  
Antiguo 09/08/2007, 10:26
 
Fecha de Ingreso: agosto-2007
Mensajes: 15
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: Error al devolver datos

Bueno antetodo muchisimas gracias por responder tan rapido. He estado haciendo pruebas y de momento no he conseguido nada (he utilizado el codigo que me habeis indicado, ambos obtienen el mismo resultado, es decir no muestra nada)

Ahora mismo el codigo completo es este:
Código PHP:
<?php

if (!defined('MODULE_FILE')) {
    die (
"You can't access this file directly...");
}

require_once(
"mainfile.php");
$module_name basename(dirname(__FILE__));
get_lang($module_name);

$index 1;


include(
"header.php");
$remote_addr getenv("REMOTE_ADDR");
$cookie[0] = intval($cookie[0]);
if (
$cookie[1] != "") {
    
$row $db->sql_fetchrow($db->sql_query("SELECT name, username, user_email FROM ".$user_prefix."_users WHERE user_id='$cookie[0]'"));
    if (
$row['name'] != "") {
        
$gamehandle $row['name'];
    } else {
        
$gamehandle $row['username'];
    }
    
$emailaddress $row['user_email'];
}

$form_block "
<div align=\"center\"><p><font class=\"title\"><b>$sitename: "
._RECRUITMENTTITLE."</b></font></p>
 <p><font class=\"content\">"
._RECRUITMENTNOTE."</font></p>
  <form action=\"modules.php?name=$module_name\" method=\"post\">
      <br>
    <table width=\"45%\" border=\"0\" align=\"center\" cellpadding=\"1\" cellspacing=\"2\">
      <tr> 
        <td width=\"52%\">"
._CDNI.":</td>
        <td width=\"48%\"><input name=\"dni\" type=\"text\" size=\"12\"></td>
      </tr>      
    </table>
    <br>
    <p><font class=\"content\">"
._NOTADNI."</font></p>
    <input type=\"hidden\" name=\"op\" value=\"ds\">
    <input type=\"submit\" name=\"Submit\" value=\"Consultar Inscripción\">
  </form>
</div>"
;

OpenTable();
if (
$_POST[op] != "ds") {
    echo 
"$form_block";


else if (
$_POST[op] == "ds") {
    if (
$_POST[dni] == "") {
        
$dni_err "<div align=\"center\"><p>"._ENTERDNI."</p></div>";
        
$send "no";
    }
    
    if (
$send != "no") {
        
        
$numero=$_POST['dni'];
        
$sql $db->sql_query("SELECT * FROM nuke_pujada07 where dni=$numero"); 
        
$resul=mysql_query($sql);
        while (
$arr_resulmysql_fetch_array($resul))
        {
        echo 
"Nombre: $arr_resul[0]";
        echo 
"Apellido: $arr_resul[1]";
        echo 
"Domicilio: $arr_resul[2]";
        echo 
"Telefono: $arr_resul[3]";
        }    
    


    } 

    else if (
$send == "no") {
        
OpenTable2();
        echo 
"$dni_err";
        
CloseTable2();        
        echo 
"<br><br>";
        echo 
"$form_block";
    }
}


echo
"$numero";

echo 
"<div align=\"center\"><p>"._IPADDRESS.": $remote_addr</p></div>";

CloseTable();
include(
"footer.php");

?>
Si imprimo numero si que me imprime el numero que le paso de dni en pantalla (pero es lo unico que veo) el resultado del array no se ve, simplemente aparece el echo"$numero"; del final de todo.

¿Alguna sugerencia amigos?

¿Como puedo comprobar si conecta a la base de datos correctamente? porque creo que va a ser ese el problema.
  #5 (permalink)  
Antiguo 09/08/2007, 11:37
 
Fecha de Ingreso: agosto-2007
Mensajes: 15
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: Error al devolver datos

Hola de nuevo!!! He conseguido solucionar el problema, el error estaba en la consulta, finalmente me ha salido poniendolo de la siguiente manera:

Código PHP:
$result $db->sql_query("SELECT * FROM ".$prefix."_pujada07 WHERE dni=$_POST[dni]");
    
$row $db->sql_fetchrow($result);
    
$nombre $row['uname'];
    
$dni $row['dni'];
    
$dorsal $row['qid'];
    
$fecha $row['timestamp'];
    
$mail $row['mail'];
    
    echo
"Estás inscrito con los siguientes datos:";
    echo
"<br><br>";
    echo
"Nº de Dorsal: $dorsal";
    echo
"<br>";
    echo
"Nombre: $nombre";
    echo
"<br>";
    echo
"DNI o Pasaporte: $dni";
    echo
"<br>";
    echo
"Fecha de Inscripción: $fecha";
    echo
"<br>";
    echo
"E-mail: $mail";
    echo
"<br><br>";
    
    } 
Pero ahora tengo un problema: Si busco el dni solo con los numero, me saca los datos perfectamente, pero si lo busco con numeros y letra no me lo encuentra. Por ejemplo si busco 12345678A no obtengo resultado, pero si busco 12345678 me salen todos los datos de esa persona.

¿A que puede ser debido?
  #6 (permalink)  
Antiguo 09/08/2007, 11:38
Avatar de josefferhn  
Fecha de Ingreso: agosto-2007
Ubicación: Tegucigalpa, Fco Morazan
Mensajes: 27
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: Error al devolver datos

Ok. Puedes Probar Esto:

Cuando envies el ID de los Datos que deseas ver debes guardarlo en una Variabel:

$ID = $_POST['dni']; // esto en tu caso

luego realizas la consulta a la BD:

$sql_query= mysql_query("select * from nuke_pujada07
where dni='$ID' ") or die(mysql_error());
While ($row=mysql_fetch_array($sql_query) )
{

echo "Campo nombre: ".$row['uname'];

}

y con esto te debe funcionar.. sino has lo siguiente ese mismo query ejecutalo directamente en Mysql Admin, si te devuelve alguna fila tienes la consulta bien hecha, sino es porke no hay de coincidencia en tu busqueda.

Espero te ayude.
  #7 (permalink)  
Antiguo 09/08/2007, 12:18
 
Fecha de Ingreso: agosto-2007
Mensajes: 15
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: Error al devolver datos

Hola de nuevo!!! Es curiosisimo porque directamente en la base de datos me hace lo mismo... Si busco solo el numero me salen los datos, si busco numero y letra no es muy raro...... En la base de datos esta el campo con numero y letra quiero decir seria algo asi como 12345678A

Para mas informacion, el campo dni de mi base de datos es un varchar(12).

¿Tiene esto algo que ver, quiero decir el tipo de campo?
  #8 (permalink)  
Antiguo 10/08/2007, 03:17
 
Fecha de Ingreso: agosto-2007
Mensajes: 15
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: Error al devolver datos

Hola otra vez... Me estoy volviendo loco loquisimo con esto... no entiendo nada...

Bueno he decidido que lo mejor seria separar el numero del DNI de su letra correspondiente, asi que he creado dentro de la tabla de la base de datos un nuevo campo llamado letra donde se almacenara la de cada dni.

Ok, resulta que relleno el formulario de inscripcion de datos, y todo perfecto, reviso la base de datos y efectivamente inserta todos los datos en su sitio, el problema viene cuando quiero sacarlos, si hago una consulta buscando el numero de dni, pues me lo saca perfectamente pero si busco la letra no hay tu tia que valga....

Otra cosa curiosa es que si inserto la letra directamente desde la base de datos, y luego la busco si que me la encuentra, pero si la inserto desde el formulario (aunque la inserta seguro, porque lo veo) no la encuentra cuando la busco...

Por favor, que puedo hacer con esto... estoy apunto de desistir ya... esta pudiendo conmigo.... ¿Tiene que ver el tipo de datos que son los campos del formulario? en el mio son todos de tipo texto, aunque sean numero.. ¿Puedo probar otro tipo de campos a ver? ¿Cuales? ¿Teneis alguna sugerencia?

Por favor un poco de ayuda, y gracias de antemano!!


Edito porque he descubierto otra cosa:

Resulta que si realizo la consulta Select * From pujada07 Where letra='Y' No me encuentra ningun resultado (aun estando una fila con la letra Y puesta) Pero si realizao la misma consulta buscando en la columnta letra el valor cero 0, resulta que me muestra todas las filas que tengo insertadas en la tabla (tengan la letra que tengan). ¿A que puede ser debido esto? ¿Como deberia de ser el campo letra para que no lo coja como un numero? ¿Que tengo que ponerle? Un saludo!!!

Última edición por evilforces; 10/08/2007 a las 03:22 Razón: Otra prueba
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:45.