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