Cita: ¿con un $sql['nombre'] por ejemplo me daria el resultado de el campo?
No.
$sql es un resultset no una matriz. Debes ejecutar
para obtener una matriz (array) por registro del resultset.
(esta función tiene la particularidad de leer secuencialmente el resultset de tal forma que cada vez que se ejecuta obtienes una matriz con un registro nuevo hasta llegar al final del resultado de la query)
No te lies fijate bien en las estructuras....
Código PHP:
Ver originalwhile(...condicion...){
....codigo que se repite mientras la condición sea cierta.
}
Código PHP:
Ver originalif(...condicion...){
...codigo que se ejecuta si la condicion es cierta.
}else{
...codigo que se ejecuta si la condición NO es cierta.
}
Luego en tu
Estas haciendo dos cosas
1. Asignar a "$fila" el resultado de "mysql_fetch_array($sql)", eso no es la condición.
2. Ejecutar "mysql_fetch_array($sql)" la qual da falso si no hay mas registros, esa es la condición que manda sobre el ciclo WHILE. El ciclo no terminara hasta que "mysql_fetch_array($sql)" sea falso.
Ahora bien si tu query tiene un "WHERE id = $Id;" los id son únicos luego seguro que solo va a generar un registro o ninguno. Por lo tanto no es necesario un bucle o ciclo como ya te ha dicho
@pateketrueke. (En el caso de una tabla fotos, debes haber controlado la condicion que cada usuario solo pueda tener una sola foto, o ninguna, para que lo ultimo sea cierto).
Luego si solo tenemos una o ninguna foto la estructura del if() nos sirve a la perfección.
Pero, recuerdas las dos cosas que haciamos en el WHILE()? Asignación y condición.
En el if debes hacer lo mismo....
Código PHP:
Ver originalecho "<img src='fotos/".$fila['nombre']."'/>";
}else{
echo "<img src='fotos/noImagen.jpg'>";
}