Sono alle prese con una doppia query MySQL e devo fare in modo che in una tabella HTML, ogni riga corrisponda ad una riga della prima query. Fin qui nessun problema, uso il while con i dati della prima query. Però, uno dei campi di questa tabella ha un menu' di scelta che devo riempire con i dati presi da un'altra query. Allora ecco il codice che ho scritto (che è online anche e potete visualizzare cliccando qui: http://www.radiowebstereo.it/admin/admin_palinsesto.php)
Codice PHP:
<?
include("config.php") //dati connessione ecc...
$query_visualizza_giorno = "SELECT palinsesto.id, palinsesto.inizio, palinsesto.fine, palinsesto.replica, programmi.id AS idprogramma, programmi.nome AS nomeprogramma, wj.id AS idwj, wj.nome AS nomewj FROM palinsesto INNER JOIN programmi ON (programmi.id=palinsesto.idprogramma) INNER JOIN wj ON (wj.id=programmi.idwj) WHERE giorno = 1 ORDER BY inizio ASC";
$visualizza_giorno = mysql_query($query_visualizza_giorno, $connessione) or die(mysql_error());
$row_visualizza_giorno = mysql_fetch_assoc($visualizza_giorno);
$totalRows_visualizza_giorno = mysql_num_rows($visualizza_giorno);
if ($totalRows_visualizza_giorno > 0) {
$query_visualizza_programmi = "SELECT id, nome from programmi";
$visualizza_programmi = mysql_query($query_visualizza_programmi,
$connessione) or die(mysql_error());
$row_visualizza_programmi = mysql_fetch_assoc($visualizza_programmi)
;
$totalRows_visualizza_programmi = mysql_num_rows($visualizza_programmi);
?>
</p>
Ecco qui di seguito listati gli eventi di [b]Lunedì:[/b] </p>
<table width="700" border="1" align="center" cellpadding="1" cellspacing="1" bordercolor="#000000">
<tr bgcolor="#00DFFF">
<th width="18%" scope="col">Ora inizio</th>
<th width="18%" scope="col">Ora fine</th>
<th width="46%" scope="col">Programma</th>
<th width="18%" scope="col">Azioni</th>
</tr>
<?php while ($row_visualizza_giorno = mysql_fetch_assoc($visualizza_giorno)) { ?>
<form name="dato_<?php echo $row_visualizza_giorno['id']; ?>" method="post" action="<? echo $PHP_SELF; ?>">
<tr bgcolor="#CCFFFF">
<td><div align="center">
<input name="inizio" type="text" id="inizio" value="<?php echo cambia_ora($row_visualizza_giorno['inizi
o']); ?>" size="10">
</div></td>
<td><div align="center">
<input name="fine" type="text" id="fine" value="<?php echo cambia_ora($row_visualizza_giorno['fine'
]); ?>" size="10">
</div></td>
<td><div align="center">
<select name="programma">
<?php
//SECONDO WHILE (FUNZIONA SOLO NELLA PRIMA RIGHA DEL PRIMO WHILE... ma perché???)
while ($row_visualizza_programmi = mysql_fetch_assoc($visualizza_programmi)
) {
if($row_visualizza_giorno['idprogramma'
] == $row_visualizza_programmi['id']) {
echo "<option value=\"".$row_visualizza_programmi['id']."\">".$row_visualizza_programmi['nome']."</option>";
} else {
echo "<option value=\"".$row_visualizza_programmi['id']."\">".$row_visualizza_programmi['nome']."</option>";
}
}
?>
</select>
</div></td>
<td><div align="center">
<input type="submit" name="Submit" value="Modifica">
<input type="submit" name="Submit" value="Cancella">
<input name="id" type="hidden" id="id" value="<?php echo $row_visualizza_giorno['id']; ?>">
<input name="giorno" type="hidden" id="giorno" value="<?php echo $_REQUEST['giorno']; ?>">
<input name="azione" type="hidden" id="azione" value="modifica">
</div></td>
</tr>
</form>
Il risultato a cui sono giunto è che il menu' a discesa viene riempito correttamente solo la prima volta...
Dovrei resettare l'array? :master: