Recupero dati da database

esavino

Nuovo Utente
2 Ott 2009
3
0
0
Buongiorno a tutti,
spiego brevemente cosa vorrei fare:
ho una tabella mysql contenente informazioni relative a delle associazioni di volontariato. In particolare per ogni associazione di volontariato è presente un campo denominato "generale" che specifica se l'associazione di volontariato in questione è accessibile, non accessibile o parzialmente accessibile.
Il campo "generale" può quindi assumere 3 valori:
A: se parzialmente accessibile;
AC: se accessibile
NC: se non accessibile
Tale campo può tuttavia essere un campo vuoto (in quanto non si dispongono le informazioni per tutte le associazioni).

Quello che dovrebbe fare lo script PHP è verificare qual'è il valore relativo a ciascuna associazione di volontariato ed in base a questo permettere il caricamento nella pagina web dell'icona associata al valore o in alternativa "dato non disponibile" se tale valore non è presente.
Ecco lo script:
codice PHP:
PHP:
<? if(!$row[generale] ){ 
echo "dato non disponibile";
} else { 
?> 
<img src="<? if($row[generale] == "A")
{echo "http://forum.mrwebmaster.it/images/green-w.gif";} 
if($row[generale] == "AC")
{echo "http://forum.mrwebmaster.it/images/yellow-w.gif";}  
if($row[generale] == "NC")
{echo "http://forum.mrwebmaster.it/images/red-w.gif";} ?>" width="22" height="22" border="0"> 
<? } ?>
Ringrazio a chiunque volesse darmi una mano.
Emiliano
 
Ultima modifica di un moderatore:

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
devi utilizzare <?php e non <?, a parte questo lo script sembra scritto correttamente, dove sta il problema?
 

esavino

Nuovo Utente
2 Ott 2009
3
0
0
il problema sta che mi restituisce sempre e comunque "dato non disponibile".
putroppo non sono praticissimo di PHP e lo script non è stato scritto da me, quindi sto cercando di interpretarlo...
sembrerebbe che non recupera i dati, posto la porzione di pagina interessata.
la tabella è costituita da 3 colonne:
1- nome dell'associazione (recuperata correttamente)
2- indirizzo dell'associazione (recuperata correttamente)
3- accessibilità (il nostro problema, non viene recuperata l'icona)
Codice:
<? if($azione=="ricerca"){
                                       $numero=0;
                                       $condizioni="ass_volontariato='S'";

                                       if($_POST['provincia']){$condizioni=$condizioni." and provincia='$provincia'";}
                                       if($_POST['comune']){$condizioni=$condizioni." and id_comune=$comune";}
                                       $query = mysql_query("SELECT * FROM enti WHERE $condizioni ORDER BY n_ente");
					while($row=mysql_fetch_array($query)){$numero=$numero+1;$id=$row[id_comune];?>
                        <tr bgcolor="#FFF9F5">
                          <td bgcolor="#FFF9F5"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><a href="volontariato_det.php?id_ente=<? echo $row[id_ente]; ?>" class="menu"><? echo $row[n_ente]; ?></a></font></td>
                          <td width="10px"><img src="images/pix.gif" height="8" width="10px"></td>
                          <td height="32"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><? echo $row[indirizzo]; ?><br>
                        <? $query2=mysql_query("select * FROM comuni ORDER BY n_comune");
                           while($row2=mysql_fetch_array($query2)){if($row[id_comune]==$row2[id_comune]){echo $row2[n_comune]." (".$row2[provincia].")";}} ?>
                          </font></td>
                          <td width="88"><div align="center"><font size="1" face="Verdana, Arial, Helvetica, sans-serif">
                              <? if($row[generale] != "A" and $row[generale] != "AC" and $row[generale] != "NC" ){ echo "n. p.";} else {?>
                              <img src="<? if($row[generale] == "A"){echo "images/green-w.gif";}
                               if($row[generale] == "AC"){echo "images/yellow-w.gif";}
                               if($row[generale] == "NC"){echo "images/red-w.gif";} 
                               ?>" width="22" height="22" border="0">
                              <? } ?>
                          </font></div></td>
Grazie mille.
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
sempre a proposito della sintassi, utilizza il formato $row['generale'] e non $row[generale].
Se dentro il ciclo while stampi
PHP:
echo $row['generale'];
visualizzi qualcosa?
 

esavino

Nuovo Utente
2 Ott 2009
3
0
0
Ti ringrazio Eliox, mi hai svelato l'errore...
"generale" non era presente nè nella tabella comuni nè nella tabella enti, ma in una terza tabella locali pubblici che di fatto non veniva estratta dal ciclo while.
Mi è stato sufficiente cambiare lo script dicendo di prendere le informazioni relative all'accessibilità dalla tabella enti.
Grazie ancora.
A presto.
Emiliano
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
devi solo migliorare un po la sintassi e lo stile di scrittura del codice, per esempio non usa row[], row2[], etc per chiamare tutti i gli array da query, ti fa confondere.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
146
63
PR
www.borgo-italia.it
ciao
devi solo migliorare un po la sintassi e lo stile di scrittura del codice, per esempio non usa row[], row2[], etc per chiamare tutti i gli array da query, ti fa confondere.
eliox ha sempre ragione, inoltre io al posto di quella filsa di if-else, userei switch