Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Consulta no muestra el primer registro

Estas en el tema de Consulta no muestra el primer registro en el foro de Mysql en Foros del Web. Hola, Por qué el siguiente código, no me muestra el primer registro de la tabla, siempre parte con el segundo registro Código PHP: $conexion  =  ...
  #1 (permalink)  
Antiguo 25/05/2010, 00:53
 
Fecha de Ingreso: julio-2002
Ubicación: Chillán - Chile
Mensajes: 39
Antigüedad: 21 años, 9 meses
Puntos: 0
Consulta no muestra el primer registro

Hola,

Por qué el siguiente código, no me muestra el primer registro de la tabla, siempre parte con el segundo registro

Código PHP:
$conexion conectarBD();        
$sql "SELECT nombre, email FROM agenda";
$result mysql_query($sql$conexion);    
print 
"<table border=1><tr><td>Nombre</td><td>E-mail</td></tr>\n";
while(
$row mysql_fetch_array($result)) {
print 
"<tr><td>".$row['nombre']."</td><td>".$row['email']."</td></tr>\n";

he probado con mysql_fetch_array y mysql_fetch_row ($row[0] $row[1]), con el mismo resultado...

Gracias
  #2 (permalink)  
Antiguo 25/05/2010, 01:59
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Consulta no muestra el primer registro

Estas seguro que no te da todos los registros, obvimente en un orden que no es el que esperas....

"SELECT nombre, email FROM agenda"

No tiene ningun orden. Agregale "ORDER BY nombre" a ver que pasa. Fijate si da todos los registros ordenados alfabeticamente por nombre.

Quim
  #3 (permalink)  
Antiguo 25/05/2010, 07:18
 
Fecha de Ingreso: julio-2002
Ubicación: Chillán - Chile
Mensajes: 39
Antigüedad: 21 años, 9 meses
Puntos: 0
Respuesta: Consulta no muestra el primer registro

Hola quimfv,

Agregué ORDER BY nombre, pero sigue sin mostrar el primer registro...

Enontré dos soluciones alternativas que sí muestran el primer registro, los resultados se ven en el siguiente link: http://www.chileanjar.cl/test_mysql.php

No sé si corresponden a la mejor alternativa...

de todas maneras, acá dejo el código completo, para ver si alguien sabe por qué la primera alternativa no muestra el primer registro:

Código PHP:
Ver original
  1. $conexion = conectarBD();      
  2.     $sql = "SELECT * FROM agenda ORDER by nombre"; //SELECT * FROM agenda WHERE id=1 LIMIT 1",$conexion
  3.     $result = mysql_query($sql, $conexion);
  4.     $num=mysql_num_rows($result);  
  5.     print "<p>rows del array: $num</p>";
  6.     print "<table border=1><tr><td>Nombre</td><td>E-mail</td></tr>\n";
  7.     print "<tr><td colspan=2>Tabla generada con: <pre>mysql_fetch_array( $ result)</pre></td></tr>\n";
  8.     while($row = mysql_fetch_array($result)) {
  9.      print "<tr><td>".$row['nombre']."</td><td>".$row['email']."</td></tr>\n";
  10.     }  
  11.     print "</table><br><br><br>";
  12.     print "<table border=1><tr><td>Nombre</td><td>E-mail</td></tr>\n"; 
  13.     print "<tr><td colspan=2>Tabla generada con: <pre>mysql_result($ result, $ i, 'nombre')</pre> y un ciclo for</td></tr>\n"; 
  14.     for ($i=0; $i<$num; $i++){
  15.         print "<tr><td>".mysql_result($result, $i, 'nombre')."</td><td>".mysql_result($result, $i, 'email')."</td></tr>\n";
  16.     }
  17.     print "</table><br><br><br>";  
  18.     print "<table border=1><tr><td>i</td><td>Nombre</td><td>E-mail</td></tr>\n";   
  19.     print "<tr><td colspan=3>Tabla generada con: <pre>mysql_data_seek($ result, $ i); $ row = mysql_fetch_array($ result) </pre> y un ciclo for</td></tr>\n";      
  20.     for ($i=0; $i<$num; $i++){ 
  21.         mysql_data_seek($result, $i);
  22.         $row = mysql_fetch_array($result);
  23.      print "<tr><td>$i</td><td>".$row['nombre']."</td><td>".$row['email']."</td></tr>\n";
  24.     }
  25.     mysql_close($conexion);

Etiquetas: muestra, primer, registro
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 13:42.