Ciao a tutti!
Ho un problema con un codice di un ciclo while che serve a decidere in che array inserire una tabella del database in base a dei vincoli. Ad esempio nel mio database ho delle tabelle di attività che devono essere inserite in un array in base al giorno, all'ora e al limite del numero di elementi al loro interno.
Il codice commentato del ciclo è questo:
Per visualizzare le tabelle in una lista utilizzo un foreach.
Il problema è che quando lancio la pagina nel browser non solo non compare nessuna tabella nella lista, ma in più scompaiono tutti gli elementi html della pagina, lasciando solo lo sfondo.
Ho provato a usare "or die..." ma non visualizza nessuna scritta di errore...
Era da più di un anno che non lavoravo su questo codice, quindi forse sono io che non mi sono aggiornato con le nuove funzioni php?
Confido in voi!
Ho un problema con un codice di un ciclo while che serve a decidere in che array inserire una tabella del database in base a dei vincoli. Ad esempio nel mio database ho delle tabelle di attività che devono essere inserite in un array in base al giorno, all'ora e al limite del numero di elementi al loro interno.
Il codice commentato del ciclo è questo:
PHP:
//Codice per mostrare tutte le tabelle del db
$result = mysqli_query("SHOW TABLES FROM my_autonatta") or die(mysqli_error());
//Array attività giorno 1
$array1g1 = array(); //Array con le attività del giorno 1 primo blocco di ore
$array2g1 = array(); //Array con le attività del giorno 1 secondo blocco di ore
//Array attività 2 giorno
$array1g2 = array(); //Array con le attività del giorno 2 primo blocco di ore
$array2g2 = array(); //Array con le attività del giorno 2 secondo blocco di ore
//Ciclo per stabilire se inserire una tabella e dove visualizzarla
while($row = mysqli_fetch_row($result)) {
$tabella = $row[0]; //Ottengo nome tabella da esaminare
$selezionaTAB = mysqli_query("SELECT * FROM `$tabella`"); //Seleziono tutto dalla tabella
$conta = mysqli_num_rows($selezionaTAB); //Conto quante righe ha la tabella
//Controllo che le tabelle CLASSI non vengano inserite
$tablong = strlen($tabella); //Lunghezza tabella (in caratteri)
$tabclass = substr("$tabella",0,1); //Ottengo primo carattere alfanumerico della tabella
//Se il primo carattere è un numero da 1 a 5...
if($tabclass == 1 || $tabclass == 2 || $tabclass == 3 || $tabclass == 4 || $tabclass == 5) {
echo ""; //...non visualizzo nulla
} else { //...altrimenti continuo con l'esaminazione
//Controllo in quale giorno e ora devo visualizzare la tabella e ottengo il limite massimo
$trovagiorno = mysqli_query("SELECT * FROM giorni_attivita WHERE nome = '$tabella'");
$trovagiorno2 = mysqli_query("SELECT * FROM giorni_attivita_2 WHERE nome = '$tabella'");
$trovalimite = mysqli_query("SELECT * FROM limite_tabelle WHERE nome = '$tabella'");
if($trovagiorno) {
$estrai = mysqli_fetch_array($trovagiorno); //Creo funzione di estrazione dati per la tabella 'giorno'
$estraiLIM = mysqli_fetch_array($trovalimite); //Creo funzione di estrazione del limite
$ora = $estrai['ora']; //Ottengo ora della tabella
$limite = $estraiLIM['limite']; //Ottengo limite tabella
$giorno = 1; //Avverto il ciclo che se cado in questa opzione sto esaminando una tabella del primo giorno
} else {
$estrai = mysqli_fetch_array($trovagiorno2); //estrazione dati per la tabella 'giorno 2'
$estraiLIM = mysqli_fetch_array($trovalimite); //estrazione del limite
$ora = $estrai['ora']; //Ottengo ora della tabella
$limite = $estraiLIM['limite']; //Ottengo limite tabella
$giorno = 2; //Avverto il ciclo che se cado in questa opzione sto esaminando una tabella del secondo giorno
}
//Non visualizzo tabelle generiche
if($tabella == "alunni" || $tabella == "limite_tabelle" || $tabella == "giorni_attivita" || $tabella == "giorni_attivita_2") {
echo ""; //Se è una di queste tabelle non faccio nulla e proseguo
}
//Codici per verificare in che ora avviene l'attività
//PER VISUALIZZARE ATTIVITA' IN TUTTE LE ORE INSERIRE: 4
//PER VISUALIZZARE ATTIVITA' SOLO PRIME TRE ORE INSERIRE: 1
//PER VISUALIZZARE ATTIVITA' SOLO ULTIME TRE ORE INSERIRE: 2
if($giorno == 1) {
if($conta <= $limite) { //Verifico che il numero di righe sia minore del limite...
if($ora == 4) {
$array1g1[] = $tabella;
$array2g1[] = $tabella;
} else if($ora == 1) {
$array1g1[] = $tabella;
} else {
$array2g1[] = $tabella;
}
} else {
echo ""; //...altrimenti non visualizzo nulla
}
} else { //Se il giorno è il secondo...
if($conta <= $limite) { //Verifico che il numero di righe sia minore del limite...
if($ora == 4) {
$array1g2[] = $tabella;
$array2g2[] = $tabella;
} else if($ora == 1) {
$array1g2[] = $tabella;
} else {
$array2g2[] = $tabella;
}
} else {
echo ""; //...altrimenti non visualizzo nulla
}
}
}
}
Per visualizzare le tabelle in una lista utilizzo un foreach.
Il problema è che quando lancio la pagina nel browser non solo non compare nessuna tabella nella lista, ma in più scompaiono tutti gli elementi html della pagina, lasciando solo lo sfondo.
Ho provato a usare "or die..." ma non visualizza nessuna scritta di errore...
Era da più di un anno che non lavoravo su questo codice, quindi forse sono io che non mi sono aggiornato con le nuove funzioni php?
Confido in voi!