mysql_fecht_xxx() (sea array, assoc, object .. etc) funciona de la siguiente manera:
1) Se obtiene un registro desde el inicio del resultado de la consulta ("record-set").
2) Se mueve el puntero interno de la consulta a la siguiente posición ..
3) Al llegar al final del "record-set" (de los resultados obtenidos de la consulta realizada) .. devuelve un "boolean": FALSE ..
Por eso .. si "llamas" una sóla vez a esa función .. sólo veras el primer registro (o si ejecutastes antes esa función .. el siguiente).
Solución:
Usa un bucle para recorrer ese "record-set" completo .. Como ya sabes (de la teoría que expliqué y puedes ver en
www.php.net ...) que al llegar al final va arrojar un "FALSE" .. puedes usar un bucle tipo while() que es lo que mejor vá para estos casos.
Código PHP:
$resultado=mysql_query("SELECT ......");
if(mysql_num_rows($resultado) > 0) {
while($row=mysql_fetch_array($resultado)){
echo $row['nombre_campo'];
}
} else {
echo "No hay resultados";
}
PD: .. el mysql_num_rows() no es una variable .. sino una función que se le ha de pasar como parámetro ese "record-set" que genera un mysql_query() ...
Un saludo,