mysql_fetch_array omitiendo la primera fila

EDITAR: Gracias por las respuestas rápidas chicos – terminé cambiando a mysql_fetch_assoc () y usando un do … while y estoy listo para ir.

Estoy usando este mismo proceso para crear y completar tablas: todo funciona bien, excepto que la primera fila se omite en todas las tablas . Podría usar otro par de ojos ya que no puedo identificar el problema. Gracias por adelantado.

$query = "SELECT * FROM members"; $results = mysql_query($query); $row = mysql_fetch_array($results); //echo my  start and headings; while ($row = mysql_fetch_array($results)) { echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ''; } echo "
".$row['Last Name']."".$row['First Name']."".$row['Middle Name']."".$row['Sfx']."".$row['Prf']."".$row['Spouse/SO']."".$row['Ancestor']."".$row['Status']."".$row['Address 1']."".$row['Address 2']."".$row['City']."".$row['ST']."".$row['Zip 5']."".$row['Zip 4']."".$row['Home Phone']."Bio

";

Está llamando mysql_fetch_array dos veces … una vez antes del bucle y una vez mientras hace bucles.

Si necesita una fila semilla para usarla en la construcción de su fila de encabezado, es mejor que la use con un bucle do .. while aquí.

 $query = "SELECT * FROM members"; $results = mysql_query($query); $row = mysql_fetch_assoc($results); //echo my  start and headings; do { echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ''; } while ($row = mysql_fetch_assoc($results)); echo "
".$row['Last Name']."".$row['First Name']."".$row['Middle Name']."".$row['Sfx']."".$row['Prf']."".$row['Spouse/SO']."".$row['Ancestor']."".$row['Status']."".$row['Address 1']."".$row['Address 2']."".$row['City']."".$row['ST']."".$row['Zip 5']."".$row['Zip 4']."".$row['Home Phone']."Bio

";
 $query = "SELECT * FROM members"; $results = mysql_query($query); $row = mysql_fetch_array($results); < -- There's your first row. Remove this. 

Hay mysql_fetch_array extra en el código. Además, falta la etiqueta de la tabla de apertura (

).

Código corregido:

 $query = "SELECT * FROM members"; $results = mysql_query($query); echo ""; while ($row = mysql_fetch_array($results)) { echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ''; } echo "
".$row['Last Name']."".$row['First Name']."".$row['Middle Name']."".$row['Sfx']."".$row['Prf']."".$row['Spouse/SO']."".$row['Ancestor']."".$row['Status']."".$row['Address 1']."".$row['Address 2']."".$row['City']."".$row['ST']."".$row['Zip 5']."".$row['Zip 4']."".$row['Home Phone']."Bio

";

Llama a mysql_fetch_array cuando inicializa $ row, que lee la primera fila. Luego lo llama por segunda vez cuando comienza su ciclo while, que lo mueve a la segunda fila antes de ejecutar cualquiera de sus circuitos. Por lo tanto, nunca hace nada con la primera fila.

 while ($row) { echo "".$row['Last Name'].""; echo "".$row['First Name'].""; echo "".$row['Middle Name'].""; echo "".$row['Sfx'].""; echo "".$row['Prf'].""; echo "".$row['Spouse/SO'].""; echo "".$row['Ancestor'].""; echo "".$row['Status'].""; echo "".$row['Address 1'].""; echo "".$row['Address 2'].""; echo "".$row['City'].""; echo "".$row['ST'].""; echo "".$row['Zip 5'].""; echo "".$row['Zip 4'].""; echo "".$row['Home Phone'].""; echo 'Bio'; $row = mysql_fetch_array($results); } echo "
";