Lo más común, lo que se suele enseñar, es cómo hacer una consulta a una tabla MySQL que en teoría recibirá más de 1 resultado, y por lo tanto se utiliza un bucle, un código similar a este:
$link = mysql_connect('host','usuario','contraseña'); mysql_select_db($link); $result = mysql_query("SELECT * FROM tabla",$link); while($row = mysql_fetch_array($result)) { // Código para cada fila }
Pero en algunos casos no esperamos recibir más que un resultado (si ya sabemos la id, por ej) y por lo tanto podemos simplificar el código, llamando simplemente una vez a mysql_fetch_array, de esta forma:
$link = mysql_connect('host','usuario','contraseña'); mysql_select_db($link); $result = mysql_query("SELECT * FROM tabla WHERE id = '1'",$link); $row = mysql_fetch_array($result); if($row) { // Tenemos en $row una fila del resultado } else { // No se ha devuelto ningún resultado }
Si sabemos seguro que siempre vamos a recibir un resultado, que sólo queremos un campo y además que éste nunca va a ser vacío, podemos utilizar la función mysql_result. Yo personalmente la utilizo cuando hago un count de registros, ya que siempre voy a recibir un número, sólo voy a recibir un campo y el resultset nunca va a ser vacío. Por ejemplo:
$link = mysql_connect('host','usuario','contraseña'); mysql_select_db($link); $result = mysql_query("SELECT count(*) FROM tabla",$link); $numregs = mysql_result($result,0);
Redactado por Nenillo