Mover el puntero mysql_fetch_array

¿Cómo puedo mover el puntero mysql_fetch_array en medio de un ciclo while? algo como esto:

while ($subject = mysql_fetch_array($subject_qry)) { $output = "
"; next($subject); $output = "
"; return $output; }

Qué tal esto:

 $counter = 0; while ($subject = mysql_fetch_array($subject_qry)) { if ($counter % 2 == 0) { $output = "
"; } else { $output = "
"; } // do something with $output here... $counter ++; }

O puede obtener el mismo resultado con un booleano:

 $left = true; while ($subject = mysql_fetch_array($subject_qry)) { if ($left) { $output = "
"; } else { $output = "
"; } // do something with $output here... $left = !$left; }

Hay algunas cosas que no tienen sentido sobre tu ejemplo. Primero, no puedes usar un nombre con mysql_fetch_array cuando recuperas el resultado. Mysql_fetch_array usa los índices numéricos, no el nombre de la columna. En segundo lugar, no devuelve un valor dentro de una instrucción while de bucle. Construirías una cadena o harías eco a medida que avanzas en el ciclo.

Has intentado algo como ésto:

 $counter = 1; while ($subject = mysql_fetch_array($subject_qry)) { echo "
"; mysql_data_seek($subject_qry,$counter); $subject = mysql_fetch_array($subject_qry); echo "
"; $counter=$counter+2; }

No puede hacer esto mientras extrae los datos de la base de datos. Todavía no ha leído la siguiente fila con mysql_fetch_array() así que no puede pasar al siguiente.

Primero deberá llenar una matriz con todos los resultados para manipular el “índice” de la matriz. Alternativamente, podría ejecutar un mysql_fetch_array() adicional dentro de su ciclo para leer la siguiente fila.