[PHP] come impostare un if else

  • Creatore Discussione Creatore Discussione Trapano
  • Data di inizio Data di inizio

Trapano

Utente Attivo
27 Set 2012
238
0
16
49
Ciao a tutti. Vi espongo il mio problemino.
Ho un elenco (listino) dove ci sono vari prodotti.
A ogni prodotto, ho assegnato una piccola immagine che si potrà poi ingrandire.
Però, non ho ancora tutte le immagini, per cui vorrei con un if else, fare in modo che se l'immagine non è ancora stata inserita, mi mostri l'immagine pippo.jpg

lo script è questo:
Codice:
 echo "<table align='left' bgcolor='' border='0' width='100%' cellpadding='2' cellspacing='0'>";
 
       echo "<td align='left' width='100'><font size='3' color='black'>".$row['cod']."</font></td>";     
       echo "<td align='left' width='50'><font size='3' color='black'>
       <a href='immagini/".$row['cod'].".jpg' target='_blank'>
       <img src='immagini/".$row['cod'].".jpg' width='30' height='30' border='1'>
       </a>
       </font>
       </td>";
       echo "<td align='left' width='700'><font size='3' color='black'>".$row['prodotto']."</font></td>";
       echo "<td align='left' width='50'><font size='3' color='black'>".$row['um']."</font></td>";
       echo "<td align='left' width='50'><font size='3' color='black'>".$row['prezzo']."</font></td>";
       echo "<td align='left' width=''><font size='3' color='black'>".$row['iva']."</font></td>";
       echo "<hr>";
    
     echo "</table>";
pensavo una cosa tipo :
if (immagini/".$row['cod'].".jpg != "") {
echo "<td align='left' width='50'><font size='3' color='black'>
<img src='immagini/pippo.jpg' width='30' height='30' border='1'></font>
</td>";
}
else ...
 
Posto la modifica che però non funziona:
Codice:
 $cod = "".$row['cod']."";
    
  
      
 echo "<table align='left' bgcolor='' border='0' width='100%' cellpadding='2' cellspacing='0'>";
       echo "<td align='left' width='100'><font size='3' color='black'>".$row['cod']."</font></td>";     
  if (immagini/$cod.jpg == '')   
        {
echo "<td align='left' width='50'><font size='3' color='black'>
<img src='immagini/pippo.png' width='30' height='30' border='1'></font>
</td>";
} else {     
       echo "<td align='left' width='50'><font size='3' color='black'>
       <a href='immagini/".$row['cod'].".jpg' target='_blank'>
       <img src='immagini/".$row['cod'].".jpg' width='30' height='30' border='1'>
       </a>
       </font>
       </td>";
       }
 
ciao
prova così
PHP:
//....
if($row['cod'] !=''){
    $immagine=$row['cod'].".jpg";
}else{
    $immagine="pippo.jpg";
}
echo "<table align='left' bgcolor='' border='0' width='100%' cellpadding='2' cellspacing='0'>";
       echo "<td align='left' width='100'><font size='3' color='black'>".$row['cod']."</font></td>";     
       echo "<td align='left' width='50'><font size='3' color='black'>
       <a href='immagini/$immagine' target='_blank'>
       <img src='immagini/$immagine' width='30' height='30' border='1'>
       </a>
       </font>
       </td>";
       echo "<td align='left' width='700'><font size='3' color='black'>".$row['prodotto']."</font></td>";
       echo "<td align='left' width='50'><font size='3' color='black'>".$row['um']."</font></td>";
       echo "<td align='left' width='50'><font size='3' color='black'>".$row['prezzo']."</font></td>";
       echo "<td align='left' width=''><font size='3' color='black'>".$row['iva']."</font></td>";
       echo "<hr>";
echo "</table>";
//...
un piccolo appunto: non vedo i tag <tr> </tr> che dovrebbero racchiudere i td, poi usa i css
 
Non funziona... mostra solo le immagini che sono state caricate... pippo.png non viene visualizzata.
Codice:
   if ($row['cod'] !='')
    {
    $immagine="".$row['cod'].".jpg";
    } else {
    $immagine="pippo.png";
    }
    
     echo "<table align='left' bgcolor='' border='0' width='100%' cellpadding='2' cellspacing='0'>";
       echo "<tr><td align='left' width='100'><font size='3' color='black'>".$row['cod']."</font></td>";     
       echo "<td align='left' width='50'><font size='3' color='black'>
       <a href='immagini/$immagine' target='_blank'>
       <img src='immagini/$immagine' width='30' height='30' border='1'>
       </a>
       </font>
       </td>";
       echo "<td align='left' width='700'><font size='3' color='black'>".$row['prodotto']."</font></td>";
       echo "<td align='left' width='50'><font size='3' color='black'>".$row['um']."</font></td>";
       echo "<td align='left' width='50'><font size='3' color='black'>".$row['prezzo']."</font></td>";
       echo "<td align='left' width=''><font size='3' color='black'>".$row['iva']."</font></td></tr>";
       echo "<hr>";   
     echo "</table>";

}
 
Ho notato che l'immagine pippo.png viene visualizzata sui record vuoti. Quelli che non hanno valore nel campo
".$row['cod']."
Ma l'immagine pippo.png non viene visualizzata dove ".$row['cod']." è presente ma la sua immagine no.
Quindi il problema è nel come porre la domanda 'if' giusto?
 
ciao
fammi capire es. la variabile $row['cod'] contiene sofonisba, ma il file sofonisba.jpg non esiste, è così?
se è così verifica anche l'esistenza del file
PHP:
//.....
if ($row['cod'] !='' && file_exists ("immagini/".$row['cod'].".jpg"))
    {
    $immagine="".$row['cod'].".jpg";
    } else {
    $immagine="pippo.png";
    }
//......
cioe se $row['cod'] non è vuoto e l'immagine esiste nella cartella la carichi altrimenti carichi pippo
 
Si, hai capito anche se mi sono spiegato male.
Però anche così... mi visualizza tutte immagini pippo.png
 
Ho provato a inserire :
Codice:
echo "immagini/".$row['cod'].".jpg";
per vedere cosa veniva fuori e appare questo:
immagini/ 12301 .jpg
con lo spazio tra la / e l'inizio del numero e un altro spazio tra la fine del numero e il .
Magari influisce? Di sicuro l'immagine che ci sono non le trova.
 
ciao
scusa intanto avrevo fatto un errore di battitura
PHP:
//.....
if ($row['cod'] !='' && file_exists ("immagini/".$row['cod'].".jpg"))
    {
    $immagine=$row['cod'].".jpg";
    } else {
    $immagine="pippo.png";
    }
//......
poi cosa hai dentro $row['cod']?
se ti viene con degli spazi vuol dire ce dentro il campo cod assieme al numero ci sono degli spazi
se questo è il risultato
immagini/ 12301 .jpg
è evidente che risulti che il file immagini/12301.jpg non esiste, non so da dove possano provenire quegli spazi, probabilmente fai qualche errore nell'insert, comunque per sicurezza metti un trim
PHP:
//.....
if (trim($row['cod']) !='' && file_exists ("immagini/".trim($row['cod']).".jpg"))
    {
    $immagine=trim($row['cod']).".jpg";
    } else {
    $immagine="pippo.png";
    }
//......
ma devi cercare di capire da dove saltano fuori quegli spazi
 
Grazie. Risolto!
Questo db, mi è arrivato da una segreteria in exell e l'ho adattato alla meglio. Probabilmente nella conversione son saltati fuori, ma non me ne ero nemmeno accorto.
Comunque ora tutto ok!!! Grazie
 

Discussioni simili