Ver Mensaje Individual
  #4 (permalink)  
Antiguo 17/11/2014, 06:13
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: Hay forma de condicionar un while?

Cita:
¿con un $sql['nombre'] por ejemplo me daria el resultado de el campo?
No.

Código PHP:
Ver original
  1. $sql= mysql_query($consulta, $cnx);

$sql es un resultset no una matriz. Debes ejecutar

Código PHP:
Ver original 

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 original
  1. while(...condicion...){
  2.    ....codigo que se repite mientras la condición sea cierta.
  3. }

Código PHP:
Ver original
  1. if(...condicion...){
  2. ...codigo que se ejecuta si la condicion es cierta.
  3. }else{
  4. ...codigo que se ejecuta si la condición NO es cierta.
  5. }

Luego en tu

Código PHP:
Ver original
  1. while($fila=mysql_fetch_array($sql)){

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 original
  1. if($fila=mysql_fetch_array($sql)){
  2. echo "<img src='fotos/".$fila['nombre']."'/>";
  3. }else{
  4. echo "<img src='fotos/noImagen.jpg'>";
  5. }
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 17/11/2014 a las 06:23