¿Cómo crear dinámicamente variables dentro de un while?

publicado por: Anonymous

Hago una consulta MySQL (bucle while) para saber las fotos de un producto y cada nombre de foto lo quiero guardar en una variable, no imprimirlo y no sé cómo hacerlo.

Éste es mi código:

$consulta2 = mysql_query("select nombre, alt from fotos where id_producto='$id' ");
$filas2 = mysql_fetch_array($consulta2);
while($filas2 = mysql_fetch_array($consulta2)){
    echo $filas2['nombre'];
    echo $filas2['alt'];
}

En vez de echo, quiero que mientras dure el bucle se guarden los resultados en variables distintas: la primera foto en $foto1, la segunda en $foto2 y así todas. Cada foto en una variable distinta a la variable de la foto anterior, y lo mismo con los alt.

solución

Puedes crear dinámicamente variables con la sgte sintaxis:

${nombre-de-variable} 

Por ejemplo:

$consulta2 = mysql_query("select nombre, alt from fotos where id_producto='$id' ");
$filas2 = mysql_fetch_array($consulta2);

$i = 0;
while($filas2 = mysql_fetch_array($consulta2)) {
     $i++;
     ${"foto" . $i} = $filas2['nombre'];
     ${"alt" . $i} = $filas2['alt'];
}

Alternativamente también podrías crear dos arrays donde puedes ir almacenando los nombres y los alt

$consulta2 = mysql_query("select nombre, alt from fotos where id_producto='$id' ");
$filas2 = mysql_fetch_array($consulta2);

$i = 0;
$fotos = [];
$alts = [];
while($filas2 = mysql_fetch_array($consulta2)) {
     $i++;
     $fotos[$i] = $filas2['nombre'];
     $alts[$i] = $filas2['alt'];
}
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *