ciao a tutti,ho un problema nella creazione di un array multidimensionale con dei dati prelevati da un database.
Devo creare degli array con i generi delle categorie presenti nel database e distinguendoli tra quelli che sono dei generi già presenti per default o generi che ho inserito IO UTENTE.. mi spiego meglio
ho una tabella categoria fatta in questo modo:
ID_Categoria
Nome_Categoria
questa tabella ha solo 3 record: Film,SerieTV e SerieAnimate
ho una tabella genere che conterrà tutti i generi
ID_Genere
Nome_Genere
User_Personalize (conterrà 0 se il genere è inserito di Default o l'id dell'utente se l'ha inserito lui)
ho una tabella Cat_Gen che mi associa i generi alle categorie in quanto un genere può anche essere presente in 2 categorie e il record non deve essere duplicato...
bene ho pensato di creare degli array con 1 sola query impostandolo in questo modo
Array['Film']['Default'][ID_GENERE][NOME_GENERE] Conterrà tutti i generi della categoria film di default
Array['Film']['Personalizzato'][ID_GENERE][NOME_GENERE] Conterrà tutti i generi della categoria film che ho creato io
stessa cosa per SerieTV e SerieAnimate
bene io avrei creato un codice in questo modo:
Codice PHP:
for($cat=1; $cat<3; $cat++){ // apertura del FOR
$strSQL = "SELECT Genere.ID_Genere, Genere.Nome_Genere, Genere.User_Personalize
FROM Genere
INNER JOIN Cat_Gen ON Genere.ID_Genere = Cat_Gen.ID_Gen
INNER JOIN Categoria ON Categoria.ID_Categoria = Cat_Gen.ID_Cat
WHERE Categoria.ID_Categoria = $cat AND ((Genere.User_Personalize=$id_utente)OR(Genere.User_Personalize=0))";
$dbh=mysql_query($strSQL) OR die("Errore 003, contattare l'amministratore ".mysql_error()) ;
while ($riga = mysql_fetch_array($dbh)) {
$ID_Genere = $riga['ID_Genere'];
$Nome_Genere = $riga['Nome_Genere'];
$User_Personalize = $riga['User_Personalize'];
if($cat==1)
$categoryName='Film';
else if($cat==2)
$categoryName='SerieTv';
else if($cat==3)
$categoryName='SerieAnimate';
if($User_Personalize==0)
$genereType='Default';
else if($User_Personalize==$id_utente)
$genereType='Personalizzato';
$genereArray["$categoryName"]["$genereType"] = array( 'id' => "$ID_Genere", 'nome' => "$Nome_Genere");
}
} // chiusura del FOR
però se lo vado a stampare in questo modo non funziona:
Codice PHP:
echo 'Select Film Default';
echo '<select>';
foreach($genereArray["Film"]["Default"] as $value=>$text)
{
echo '<option value="'.$value.'">'.$text.'</option>';
}
echo '</select>
';
ma nella select visualizzo 1 solo record e in una option l'id del record e in un'altra option il nome del genere...Dove sbaglio?