- Home
- Categorie
- Coding e Sistemistica
- PHP
- mostrare solo una volta un testo nel ciclo while
-
mostrare solo una volta un testo nel ciclo while
Salve a tutti
sto cercando di mostrare una gallery di alcuni alberghi usando fancybox.
Il problema è che per costruire la struttura esatta per poi mostrare le foto, devo mettere tutto in un ciclo while, compreso il link per l'apertura delle foto.Con il mio codice se ho 10 foto, mostro 10 volte la scritta "VEDI FOTO"
Come posso fare a mostrare solo una volta il link?
Ecco il codice$query_fotogallery="select * from foto_hotel where id_hotel=\"$riga[id_hotel]\" and attiva=\"1\""; $risultato_fotogallery = @mysql_query($query_fotogallery) or die("Impossibile eseguire l'interrogazione fotogallery"); while ($riga_fotogallery = mysql_fetch_array($risultato_fotogallery)) { $id_hotel = $riga_fotogallery['id_hotel']; $id_foto = $riga_fotogallery['id_foto']; $fotogallery = $riga_fotogallery['foto']; $mostra_gallery="<a class=\"fancybox\" rel=\"gallery1\" href=\"$url/foto-strutture/$directory/grandi/thumb2_$fotogallery\">VEDI FOTO</a>"; echo"$mostra_gallery<br>"; }
Come posso risolvere?
Grazie
-
Bhè se lo vuoi mostrare solo una volta lo metti fuori dal while, altrimenti lo mostri la prima volta con un controllo su di una variabile $show settata inizialmente a true dopodichè passa a false e non dovrebbe più passare il controllo.
-
si ma se lo metto fuori dal while poi non mostra tutto il resto, in pratica dovrei mostrare qualcosa tipo:
$mostra_gallery="<a class="fancybox" rel="gallery1" href="$url/foto-strutture/$directory/grandi/thumb2_$foto1">VEDI FOTO</a>";
$mostra_gallery="<a class="fancybox" rel="gallery1" href="$url/foto-strutture/$directory/grandi/thumb2_$foto2"></a>";
$mostra_gallery="<a class="fancybox" rel="gallery1" href="$url/foto-strutture/$directory/grandi/thumb2_$foto3"></a>";
$mostra_gallery="<a class="fancybox" rel="gallery1" href="$url/foto-strutture/$directory/grandi/thumb2_$foto4"></a>";
$mostra_gallery="<a class="fancybox" rel="gallery1" href="$url/foto-strutture/$directory/grandi/thumb2_$foto5"></a>";ecc
come dovrei fare con la variabile settata su true e false?
-
fuori dal ciclo while la setti true, fai un controllo all'interno che scrive VEDI FOTO solo se la variabile è settata true. Ma a fine ciclo la imposti false in modo che non sarà mai true ma solo la prima volta.
[PHP]
$show = true;
while () {
if($show == true) {
VEDI FOTO
}//Tutto quello che ti serve
$show = false;
}
[/PHP]
-
ci siamo quasi, funziona bene il tuo metodo, solo che adesso appena si apre la gallery le prime 2 foto sono le stesse, poi iniziano tutte le altre e questo per ogni struttura
Quindi per esempio:
hotel x: prima foto quella della piscina, seconda foto la stessa, dalla terza in poi tutte foto nuovee questo per tutte le altre strutture
Come potrei fare ad evitare di far visualizzare la stessa foto 2 volte?
Ecco il codice aggiornato con il tuo consiglio:
[php]
$show = true;
$query_fotogallery="select * from foto_hotel where id_hotel="$riga[id_hotel]" and attiva="1"";
$risultato_fotogallery = @mysql_query($query_fotogallery) or die("Impossibile eseguire l'interrogazione fotogallery");
//$numero_foto_gallery = mysql_num_rows($risultato_fotogallery);
while ($riga_fotogallery = mysql_fetch_array($risultato_fotogallery)) {
$id_hotel = $riga_fotogallery['id_hotel'];
$id_foto = $riga_fotogallery['id_foto'];
$fotogallery = $riga_fotogallery['foto'];
if($show == true) {
$mostra_gallery="<a class="fancybox" rel="gallery1" href="$url/foto-strutture/$directory/grandi/thumb2_$fotogallery"><button type="button" class="btn btn-info btn-sm" style="margin-top:5px;"><b>VEDI FOTO</b></button></a>";
echo"$mostra_gallery";
}
$show = false;
$mostra_gallery="<a class="fancybox" rel="gallery1" href="$url/foto-strutture/$directory/grandi/thumb2_$fotogallery"></a>";
echo"$mostra_gallery";
}
[/php]Inoltre ho notato che una volta che arrivo all'ultima foto dell'hotel, non ricomincia da zero, ma fa vedere le foto dell'albergo successivo e questo è un problema
E' risolvibile? Magari devo fare qualche altro controllo...
Grazie
-
@No_Stress said:
ci siamo quasi, funziona bene il tuo metodo, solo che adesso appena si apre la gallery le prime 2 foto sono le stesse, poi iniziano tutte le altre e questo per ogni struttura
Quindi per esempio:
hotel x: prima foto quella della piscina, seconda foto la stessa, dalla terza in poi tutte foto nuovee questo per tutte le altre strutture
Come potrei fare ad evitare di far visualizzare la stessa foto 2 volte?
Ecco il codice aggiornato con il tuo consiglio:
[php]
$show = true;
$query_fotogallery="select * from foto_hotel where id_hotel="$riga[id_hotel]" and attiva="1"";
$risultato_fotogallery = @mysql_query($query_fotogallery) or die("Impossibile eseguire l'interrogazione fotogallery");
//$numero_foto_gallery = mysql_num_rows($risultato_fotogallery);
while ($riga_fotogallery = mysql_fetch_array($risultato_fotogallery)) {
$id_hotel = $riga_fotogallery['id_hotel'];
$id_foto = $riga_fotogallery['id_foto'];
$fotogallery = $riga_fotogallery['foto'];
if($show == true) {
$mostra_gallery="<a class="fancybox" rel="gallery1" href="$url/foto-strutture/$directory/grandi/thumb2_$fotogallery"><button type="button" class="btn btn-info btn-sm" style="margin-top:5px;"><b>VEDI FOTO</b></button></a>";
echo"$mostra_gallery";
}
$show = false;
$mostra_gallery="<a class="fancybox" rel="gallery1" href="$url/foto-strutture/$directory/grandi/thumb2_$fotogallery"></a>";
echo"$mostra_gallery";
}
[/php]Inoltre ho notato che una volta che arrivo all'ultima foto dell'hotel, non ricomincia da zero, ma fa vedere le foto dell'albergo successivo e questo è un problema
E' risolvibile? Magari devo fare qualche altro controllo...
GrazieTu avevi detto di voler mostrare una sola volta il VEDI FOTO quindi nel while non devi riportarci tutto il mostra gallery ma solo il vedi foto. Cioè il tuo codice andrebbe modificato così:
[PHP]
$show = true;
$query_fotogallery="select * from foto_hotel where id_hotel="$riga[id_hotel]" and attiva="1"";
$risultato_fotogallery = @mysql_query($query_fotogallery) or die("Impossibile eseguire l'interrogazione fotogallery");
//$numero_foto_gallery = mysql_num_rows($risultato_fotogallery);
while ($riga_fotogallery = mysql_fetch_array($risultato_fotogallery)) {
$id_hotel = $riga_fotogallery['id_hotel'];
$id_foto = $riga_fotogallery['id_foto'];
$fotogallery = $riga_fotogallery['foto'];
$mostra_gallery="<a class="fancybox" rel="gallery1" href="$url/foto-strutture/$directory/grandi/thumb2_$fotogallery">";
echo"$mostra_gallery";
if($show == true) {
<button type="button" class="btn btn-info btn-sm" style="margin-top:5px;"><b>VEDI FOTO</b></button></a>";
$show = false;
}
}
[/PHP]L'ultimo problema non l'ho capito visto che non conosco tutto il funzionamento.