Foros del Web » Programando para Internet » PHP »

Problema con una consulta a una BD

Estas en el tema de Problema con una consulta a una BD en el foro de PHP en Foros del Web. Hola: Bueno, no se si debería poner esto aquí o en el foro de bases de datos, porque no se exactamente si el problema lo ...
  #1 (permalink)  
Antiguo 10/03/2010, 18:43
Avatar de Alun  
Fecha de Ingreso: diciembre-2009
Ubicación: Liverpool
Mensajes: 140
Antigüedad: 14 años, 4 meses
Puntos: 4
Problema con una consulta a una BD

Hola:

Bueno, no se si debería poner esto aquí o en el foro de bases de datos, porque no se exactamente si el problema lo tengo en el trozo de php o en de sql...

Tengo una consulta a una BD, que (creo) debería devolver 22 registros (dos columnas y 11 filas). El problema es que el vector solamente contiene dos registros...

No se si habré confundido algo, y habré puesto el número de campos o algo así....

Bueno, dejo el código por si alguien puede explicarme en qué estoy fallando y por qué (así se aprende =D):



Código PHP:
$select "select nombre, tiempo from velocidad order by tiempo;";
$consulta mysql_query($select,$conexion);
echo 
"Resultado de la consulta: ".$cosulta//Lo primero es que este campo me sale en blanco
if($consulta != FALSE)
{
    
$num_regs=mysql_num_rows ($consulta);
    if(
$num_regs 0)
    {
        
$tam mysql_num_fields($consulta);
        
$row=mysql_fetch_row ($consulta);
        echo 
"<br>Contenido del Vector devuelto:  ".$row[2]; //Hasta este campo del vector no puedo llegar, me dice que no está definido
        
echo "<br>Número de Registros: ".$num_regs."<br>";
        echo 
"Número de Campos: ".$tam;
        echo 
"<table border='2' id='tablamejores'><tr><td><b>Nombre:</b></td><td><b>Tiempo:</b></td></tr>";
        while(
$row=mysql_fetch_row ($consulta))
        {
            for(
$i=0;$i 1$i++)
            {
                echo 
"<tr><td>".$row[0]."</td><td>".$row[1]."</td></tr>";
                echo 
"<tr><td>".$row[2]."</td><td>".$row[3]."</td></tr>"//y aquí tengo el problema, no puedo llegar hasta ellos, porque están vacíos
            
}
            echo 
"</table>";
            echo 
"<br><br>";
        } 
Muchas gracias!
  #2 (permalink)  
Antiguo 10/03/2010, 18:54
 
Fecha de Ingreso: marzo-2010
Mensajes: 51
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Problema con una consulta a una BD

ps primero que todo no te devolveria 22 re gistros te devolveria 11 que es el numero de columnas haslo de la siguiente manera tal vez asi lo puedas ver mas claro

Código PHP:
  $consulta "select nombre, tiempo from velocidad order by tiempo;";
        
$resultado mysql_query($consulta);
        do { 
                    echo 
"<tr> \n"
                    echo 
"<td>".$row["nombre"]."</td> \n"
                    echo 
"<td>".$row["tiempo"]."</td> \n";
                   echo 
"</tr> \n"
              } while (
$row mysql_fetch_array($resultado)); 
  #3 (permalink)  
Antiguo 10/03/2010, 19:04
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: Problema con una consulta a una BD

intenta con esto
Código PHP:
Ver original
  1. $select = "select nombre, tiempo from velocidad order by tiempo;";
  2. $consulta = mysql_query($select,$conexion) or die('Error->'.mysql_error());
  3. var_dump($consulta);//$consulta es un array por eso se hace el var_dump
  4. $num_regs=mysql_num_rows($consulta);//preguntamos el numero de registros
  5. if($num_regs > 0){
  6.     $tam = mysql_num_fields($consulta);
  7.     echo "<br>Número de Registros: ".$num_regs."<br>";
  8.     echo "Número de Campos: ".$tam;
  9.     echo "<table border='2' id='tablamejores'><tr><td><b>Nombre:</b></td><td><b>Tiempo:</b></td></tr>";
  10.     while($row=mysql_fetch_row($consulta)){
  11.             echo "<tr><td>".$row[0]."</td><td>".$row[1]."</td></tr>";
  12.     }//faltaba cerrar el while
  13.     echo "</table>";
  14.     echo "<br><br>";
  15. }else{
  16.     echo 'Sin registros';
  17. }
saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #4 (permalink)  
Antiguo 10/03/2010, 19:11
Avatar de Alun  
Fecha de Ingreso: diciembre-2009
Ubicación: Liverpool
Mensajes: 140
Antigüedad: 14 años, 4 meses
Puntos: 4
Respuesta: Problema con una consulta a una BD

Muchas gracias por la respuesta!!

Bueno, esta sentencia sí consigue que los valores se me muestren ordenados en una tabla, pero me sale un mensaje de error, y me dice que los índices "nombre" y "tiempo" del vector no están definidos:

Notice: Undefined index: nombre in ....
Notice: Undefined index: tiempo in....


¿Cómo puedo arreglar esto?

De nuevo, muchas gracias!
  #5 (permalink)  
Antiguo 10/03/2010, 19:14
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: Problema con una consulta a una BD

cual de los 2 codigos???
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #6 (permalink)  
Antiguo 10/03/2010, 19:14
 
Fecha de Ingreso: marzo-2010
Mensajes: 51
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Problema con una consulta a una BD

Podrías cambiar el nombre del campo por el indice es decir donde colocas nombre, coloca 0 y en tiempo coloca 1 en el acceso a los datos del vector
  #7 (permalink)  
Antiguo 10/03/2010, 19:18
Avatar de Alun  
Fecha de Ingreso: diciembre-2009
Ubicación: Liverpool
Mensajes: 140
Antigüedad: 14 años, 4 meses
Puntos: 4
Respuesta: Problema con una consulta a una BD

Vaya, eits, muchas gracias, con este conseguí eliminar esos dos errores (posteé antes de recargar la página y no vi tu post).

Bueno, ya que tengo que usarlo, ¿me explicas qué función tiene var_dump, por favor?

Muchas gracias a los dos!
  #8 (permalink)  
Antiguo 10/03/2010, 19:21
Avatar de Alun  
Fecha de Ingreso: diciembre-2009
Ubicación: Liverpool
Mensajes: 140
Antigüedad: 14 años, 4 meses
Puntos: 4
Respuesta: Problema con una consulta a una BD

Dios, qué lio xD

Carlosmarin: este código consiguió ordenarme bien los campos (muchas gracias), pero me daba el error que comenté arriba.

Antes de poder probar tu solución, he visto el código de eits, y lo he probado, Este me funciona perfecto, sin ese fallo, solo que no comprendo la función de var_dump.

Muchas gracias otra vez a los dos
  #9 (permalink)  
Antiguo 10/03/2010, 19:25
 
Fecha de Ingreso: marzo-2010
Mensajes: 51
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Problema con una consulta a una BD

Aqui encuentras la informacion http://www.hospedajeydominios.com/mambo/documentacion-manual_php-pagina-function_var_dump.html
  #10 (permalink)  
Antiguo 10/03/2010, 19:26
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: Problema con una consulta a una BD

era para ver si la variable contenia valor.

el var_dump es meramente para depurar, te muestra el contenido de una variable o un objeto, en una forma que podemos llamar ordenada.

puedes eliminar esa linea y no tendras problemas.

saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.

Etiquetas: bd
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 18:59.