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:
Codice 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 == || $tabclass == || $tabclass == || $tabclass == || $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!