Database e immagini

Io ho questo select che alimenta il campo difficolta' del mio database, vorrei che a seconda del valore che assume il campo venga scelta un immagine e venga visualizzata. Si puo' fare?

Debbo creare un altro campo dove vengono memorizzate le immagini? se si di che tipo?

<select   name=difficolta>
<option   selected=Facile>Facile
<option   value=Facile>Facile
<option   value=Elaborata>Elaborata
<option   value=Impegnativa>Impegnativa
inviato 10 anni fa
blackeyes
X 0 X

Spiega un po' meglio cosa vorresti fare. Quando l'utente seleziona un'opzione della select cosa deve accadere?

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

lascia perdere il select vorrei solo  che a seconda del valore che assume il campo difficolta' nel mio db venga scelta un immagine e venga visualizzata.

Facile       -->immagine 1

Elaborata -->immagine 2

ecc.

risposto 10 anni fa
blackeyes
X 0 X

dopo aver effettuato la query per estrarre dal DB tale valore (una SELECT) basta far seguire un IF:

$result = mysql_query("SELECT ..... ");

$row = mysql_fetch_assoc($result);

if ($row['nome_campo'] == "Facile")

   echo '<img ... src="percorso/a/immagine_1.jpeg">';

elseif($row['nome_campo'] == "Elaborata ")

   echo '<img ... src="percorso/a/immagine_2.jpeg">';

Non prendere alla lettera il codice precedente, l'ho buttato giù al volo...

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

ora provo, grazie

secondo te è conveniente memorizzare le immagini direttamente nel db?

risposto 10 anni fa
blackeyes
X 0 X

se non hai un buon motivo per farlo allora non farlo  ;)

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

anche questo e' vero :-)

risposto 10 anni fa
blackeyes
X 0 X

allora funziona ma l'immagine mi viene visualizzata in alto a sinistra dello schermo:

ecco il codice:<?    include("top_foot.inc.php");    include("config.inc.php"); include("connect.inc.php"); top(); $query   =   "SELECT   titolo,   regione, tipopiatto, persone,   ingredienti,  preparazione, note, difficolta   FROM   ricette WHERE   id='$id'"; $result   =   mysql_query($query,   $db); $row   =   mysql_fetch_array($result); if ($row['difficolta'] == "Facile")    echo '<img src=1.gif>'; elseif($row['difficolta'] == "Elaborata")    echo '<img src=2.gif>'; elseif($row['difficolta'] == "Impegnativa")    echo '<img src=3.gif>'; $riga.="<table width=600 border=1 cellspacing=0 cellpadding=3 align=center>"; $riga.="<td  width=600 height=56 align=center><b>$row[titolo]</b></td>"; $riga.="<td  valign=top>"; $riga.="<table width=100% border=0 cellspacing=1 cellpadding=4 bgcolor=#CCCC99 align=center>"; $riga.="</table>"; $riga.="<tr bgcolor=#FFFFFF valign=top>"; $riga.="<td  bgcolor=#FFFFFF width=143>"; $riga.="<br /><b>Nazione / Regione:</b><br />$row[regione]<br />"; $riga.="<br /><b>N.Persone:</b><br />$row[persone]<br />"; $riga.="<br /><b>Portata:</b><br />$row[tipopiatto]<br />"; $riga.="<br /><b>Difficoltà:</b><br />$row[difficolta]<br />"; $riga.="<td width=452>"; $riga.="<div align=justify><b>Ingredienti:</b><br />$row[ingredienti]</div><br>"; $riga.="<table width=300 border=0 cellspacing=0 cellpadding=0>"; $riga.="</tr>"; $riga.="<td height=10></td>"; $riga.="  </tr>"; $riga.="<div  align=justify><b>Preparazione:</b><br />$row[preparazione]</div></td></tr>"; $riga.="</table>"; $riga.="<div  align=justify><b>Note:</b><br />$row[note]</div></td></tr>"; $riga.="</table>"; $riga.="<table width=600 border=0 cellspacing=0 cellpadding=0 align=center>"; $riga.="<tr>"; $riga.="<td height=10></td>"; $riga.="</tr>"; $riga.="</table>"; $riga.="<table width=600 border=0 cellspacing=0 cellpadding=0 align=center>"; $riga.="<td><a   href=index.php>Torna   alla   pagina   iniziale</a></td>"; $riga.="<td><a   href=all.php>Visualizza   tutte   le ricette</a></td>"; $riga.="<td><a   href=search.php>Cerca   nel database</a></td>"; $riga.="</table>"; echo $riga; mysql_close($db); ?>

io vorrei venisse visualizzata al posto di questo:

$riga.="<br /><b>Difficoltà:</b><br />$row[difficolta]<br />";

Scusa la mia infinita ignoranza in materia  :(

risposto 10 anni fa
blackeyes
X 0 X

Non puoi pretendere che l'immagine sia vicino a "difficoltà" se fai l'echo del tag IMG prima di aver generato la tabella. Se guardi l'output generato dal tuo script ti accorgerai che hai messo prima le immagini e poi la tabella che contiene i dati.

Dovresti fare qualcosa del genere:

$riga.="<br /><b>N.Persone:</b><br />$row[persone]<br />";

$riga.="<br /><b>Portata:</b><br />$row[tipopiatto]<br />";

$riga.="<br /><b>Difficoltà:</b><br />";

if ($row['difficolta'] == "Facile")

  $riga.='<img src=1.gif>';

elseif($row['difficolta'] == "Elaborata")

  $riga.='<img src=2.gif>';

elseif($row['difficolta'] == "Impegnativa")

  $riga.='<img src=3.gif>';

$riga.="<td width=452>";

$riga.="<div align=justify><b>Ingredienti:</b><br />$row[ingredienti]</div><br>";

$riga.="<table width=300 border=0 cellspacing=0 cellpadding=0>";

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

e' vero che tonto che sono hai ragione :-D

risposto 10 anni fa
blackeyes
X 0 X

credevo che l'if andasse per forza subito dopo la query...

con l'elseif non serve specifcare anche l'endif? io non l'ho messo e funziona uguale lo script....

un'altra domanda, il modo che ho usato per creare la tabella è corretto o si puo' fare meglio?

grazie

risposto 10 anni fa
blackeyes
X 0 X

L'endif non serve. Per quanto riguarda la tabella (HTML) io avrei fatto diversamente. Avrei realizzato prima la pagina HTML in un file separato. Poi, nei punti in cui voglio far comparire dei dati provenienti dalla SELECT, avrei messo degli:

<?php echo $row['campo_tabella']?>

ed invine, nello script che effettua la query, avrei messo una include per richiamare il file con l'HTML.

Anche per le immagini delle "difficoltà" avrei messo l'if subito dopo la query, ma modificato in questo modo

if ($row['difficolta'] == "Facile")

   $row['difficolta'] ='<img src=1.gif>';

elseif($row['difficolta'] == "Elaborata")

  $row['difficolta'] ='<img src=2.gif>';

elseif($row['difficolta'] == "Impegnativa")

  $row['difficolta']='<img src=3.gif>';

e poi nel file contenete l'HTML, nel punto in cui voglio che appaia l'immagine, avrei messo un semplice

<?php echo $row['difficolta']?>

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

ho modificato il cdice ma continuo a vedere l'immagine in alto a sinistra :-[

<?   
include("top_foot.inc.php");   
include("config.inc.php");
include("connect.inc.php");
top();
$query   =   "SELECT   titolo,   regione, tipopiatto, persone,   ingredienti,  preparazione, note, difficolta   FROM   ricette WHERE   id='$id'";
$result   =   mysql_query($query,   $db);
$row   =   mysql_fetch_array($result);
$riga.="<table width=600 border=1 cellspacing=0 cellpadding=3 align=center>";
$riga.="<td  width=600 height=56 align=center><b>$row[titolo]</b></td>";
$riga.="<td  valign=top>";
$riga.="<table width=100% border=0 cellspacing=1 cellpadding=4 bgcolor=#CCCC99 align=center>";
$riga.="</table>";
$riga.="<tr bgcolor=#FFFFFF valign=top>";
$riga.="<td  bgcolor=#FFFFFF width=143>"; 
$riga.="<br /><b>Nazione / Regione:</b><br />$row[regione]<br />";
$riga.="<br /><b>N.Persone:</b><br />$row[persone]<br />";
$riga.="<br /><b>Portata:</b><br />$row[tipopiatto]<br />";
$riga.="<br /><b>Difficoltà:</b><br />";
if ($row['difficolta'] == "Facile")
   echo '<img src=1.gif>';
elseif($row['difficolta'] == "Elaborata")
   echo '<img src=2.gif>';
elseif($row['difficolta'] == "Impegnativa")
   echo '<img src=3.gif>';
$riga.="<td width=452>";
$riga.="<div align=justify><b>Ingredienti:</b><br />$row[ingredienti]</div><br>";
$riga.="<table width=300 border=0 cellspacing=0 cellpadding=0>";
$riga.="</tr>";
$riga.="<td height=10></td>";
$riga.="  </tr>";
$riga.="<div  align=justify><b>Preparazione:</b><br />$row[preparazione]</div></td></tr>";
$riga.="</table>";
$riga.="<div  align=justify><b>Note:</b><br />$row[note]</div></td></tr>";
$riga.="</table>";
$riga.="<table width=600 border=0 cellspacing=0 cellpadding=0 align=center>";
$riga.="<tr>";
$riga.="<td height=10></td>";
$riga.="</tr>";
$riga.="</table>";
$riga.="<table width=600 border=0 cellspacing=0 cellpadding=0 align=center>";
$riga.="<td><a   href=index.php>Torna   alla   pagina   iniziale</a></td>";
$riga.="<td><a   href=all.php>Visualizza   tutte   le ricette</a></td>";
$riga.="<td><a   href=search.php>Cerca   nel database</a></td>";
$riga.="</table>";
echo $riga;
mysql_close($db);
?>
 
risposto 10 anni fa
blackeyes
X 0 X

controlla bene cosa ti ho consigliato di fare qui:

http://www.phpnews.it/forum/index.php?topic=1552.msg10145#msg10145

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

controlla bene cosa ti ho consigliato di fare qui:

http://www.phpnews.it/forum/index.php?topic=1552.msg10145#msg10145

 bye

<?   

include("top_foot.inc.php");   

include("config.inc.php");

include("connect.inc.php");

top();

$query   =   "SELECT   titolo,   regione, tipopiatto, persone,   ingredienti,  preparazione, note, difficolta   FROM   ricette WHERE   id='$id'";

$result   =   mysql_query($query,   $db);

$row   =   mysql_fetch_array($result);

$riga.="<table width=600 border=1 cellspacing=0 cellpadding=3 align=center>";

$riga.="<td  width=600 height=56 align=center><b>$row[titolo]</b></td>";

$riga.="<td  valign=top>";

$riga.="<table width=100% border=0 cellspacing=1 cellpadding=4 bgcolor=#CCCC99 align=center>";

$riga.="</table>";

$riga.="<tr bgcolor=#FFFFFF valign=top>";

$riga.="<td  bgcolor=#FFFFFF width=143>";

$riga.="<br /><b>Nazione / Regione:</b><br />$row[regione]<br />";

$riga.="<br /><b>N.Persone:</b><br />$row[persone]<br />";

$riga.="<br /><b>Portata:</b><br />$row[tipopiatto]<br />";

$riga.="<br /><b>Difficoltà:</b><br />";

if ($row['difficolta'] == "Facile")

   echo '<img src=1.gif>';

elseif($row['difficolta'] == "Elaborata")

   echo '<img src=2.gif>';

elseif($row['difficolta'] == "Impegnativa")

   echo '<img src=3.gif>';

$riga.="<td width=452>";

$riga.="<div align=justify><b>Ingredienti:</b><br />$row[ingredienti]</div><br>";

$riga.="<table width=300 border=0 cellspacing=0 cellpadding=0>";

$riga.="</tr>";

$riga.="<td height=10></td>";

$riga.="  </tr>";

$riga.="<div  align=justify><b>Preparazione:</b><br />$row[preparazione]</div></td></tr>";

$riga.="</table>";

$riga.="<div  align=justify><b>Note:</b><br />$row[note]</div></td></tr>";

$riga.="</table>";

$riga.="<table width=600 border=0 cellspacing=0 cellpadding=0 align=center>";

$riga.="<tr>";

$riga.="<td height=10></td>";

$riga.="</tr>";

$riga.="</table>";

$riga.="<table width=600 border=0 cellspacing=0 cellpadding=0 align=center>";

$riga.="<td><a   href=index.php>Torna   alla   pagina   iniziale</a></td>";

$riga.="<td><a   href=all.php>Visualizza   tutte   le ricette</a></td>";

$riga.="<td><a   href=search.php>Cerca   nel database</a></td>";

$riga.="</table>";

echo $riga;

mysql_close($db);

?>

mi senbra di aver fatto come dici l'if sotto la riga difficoltà ::)

risposto 10 anni fa
blackeyes
X 0 X

L'endif non serve. Per quanto riguarda la tabella (HTML) io avrei fatto diversamente. Avrei realizzato prima la pagina HTML in un file separato. Poi, nei punti in cui voglio far comparire dei dati provenienti dalla SELECT, avrei messo degli:

<?php echo $row['campo_tabella']?>

ed invine, nello script che effettua la query, avrei messo una include per richiamare il file con l'HTML.

Anche per le immagini delle "difficoltà" avrei messo l'if subito dopo la query, ma modificato in questo modo

if ($row['difficolta'] == "Facile")

   $row['difficolta'] ='<img src=1.gif>';

elseif($row['difficolta'] == "Elaborata")

  $row['difficolta'] ='<img src=2.gif>';

elseif($row['difficolta'] == "Impegnativa")

  $row['difficolta']='<img src=3.gif>';

e poi nel file contenete l'HTML, nel punto in cui voglio che appaia l'immagine, avrei messo un semplice

<?php echo $row['difficolta']?>

 :bye:

provo a fare cosi'

risposto 10 anni fa
blackeyes
X 0 X

in un precedente messaggio avevo scritto questo:

if ($row['difficolta'] == "Facile")

  $riga.='<img src=1.gif>';

elseif($row['difficolta'] == "Elaborata")

  $riga.='<img src=2.gif>';

elseif($row['difficolta'] == "Impegnativa")

  $riga.='<img src=3.gif>';

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

ok adesso funziona, grazie comunque provero' anche la soluzione che mi hai postato qui http://www.phpnews.it/forum/index.php?topic=1552.msg10148#msg10148

risposto 10 anni fa
blackeyes
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda