-
Concatenare stringhe
Ciao ragazzi!
Devo creare una micro gallery di 10 immagini in php dove gli indirizzi delle immagini vengono presi dal db.
Prima prendo gli indirizzi con un ciclo
Codice PHP:
while ($riga = mysql_fetch_assoc($result)) {
$url_img1=$riga["Field58"];
$url_img2=$riga["Field59"];
$url_img3=$riga["Field60"];
$url_img4=$riga["Field61"];
$url_img5=$riga["Field62"];
$url_img6=$riga["Field63"];
$url_img7=$riga["Field66"];
$url_img8=$riga["Field67"];
$url_img9=$riga["Field68"];
$url_img10=$riga["Field69"];
Di queste dovrei poi fare due cose
1) il controllo: se esiste l'immagine
2) se esite implementare una cosa del genere (uso del lightbox):
Codice PHP:
echo"<div class='gallery'>";
for ( $i = 1; $i <= 10; $i++) {
echo"
<a href='http://blabla $url_img $i' rel='lightbox[gallery]'>
<div style='background-image:url(http://blabla $url_img $i)'></div>
</a>
";
}
echo"</div><br style='clear: both;'/>";
dove "http://blabla $url_img $i"
sarebbe l'url del sito + $url_img=nomeimmagine.jpg + $i=numero compreso tra 1 e 10.
La stringa href='http://blabla $url_img $i' però non è corretta...ho provato anche ad aggiungere il punto ma non riesco a concatenare tutto e l'url finale è sempre incompleto!!
Sapete come aggiustare la stringa con le variabili?
Il risultato finale dovrebbe essere:
per $i da 1 a 10
se $url_img+$i esiste
allora mostrami link e immagine
ciao a tutti!:lol:
-
1) if(file_exists(percorso + nome file)
2) in teoria, quando usi le virgolette per delimitare le stringhe da stampare, basta scrivere le variabili così come sono e vengono automaticamente interpretate. Se questo non avviene molto probabilmente ti aspetti dei valori che in verità non ci sono.
Prova a stampare le singole variabili e vedi se sono correttamente valorizzate.
Ciao!
-
Ciao :)
Ho fatto come mi hai giustamente consigliato....
eppure non c'è nulla di buono! O_O
Togliendo di mezzo il for per semplificare le cose ho fatto una cosa del genere:
Codice PHP:
$i = 1;
echo"url: $i $url_img$i";
ed il risultato in stampa è --> 1 1
quindi invece che richiamare il valore $url_img1
Codice PHP:
$url_img1=$riga["Field58"];
interpreta solo $i e non il valore insieme $url_img$i
Quale credi sia il motivo?:shock:
Non è forse tutta una questione di priorità nell'ordine delle interpretazioni?
-
Ah... non avevo capito cosa volessi fare!
La cosa è un po' più complessa, ma non tanto.
Guarda la funzione eval()
Ciao!
-
Ciao debug...devo ringraziarti ancora una volta.
Ho fatto un po' di prove e alla fine il risultato è arrivato.
Il codice finale è questo..semmai potesse servire da aiuto ai posteri :)
Codice PHP:
/* devo recuperare dal db l'url di 10 immagini, la cui struttura è questa
$url_img1=$riga["Field58"];
etc... */
for ( $i = 1; $i <= 10; $i++) {
$img = "$";
$img .= "url_img$i";
eval("\$img = \"$img\";");
// così il valore di $img sarà $url_img1, $url_img2, $url_img3...etc..
//echo "$img <br />";
if ($img != null) {
echo "
<img src=\"$img\" />
";}
//else {echo "no-img";};
} //if