Problema codice in un ciclo while

Francesc4052

Nuovo Utente
15 Ott 2013
14
0
1
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:
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! :)
 

Francesc4052

Nuovo Utente
15 Ott 2013
14
0
1
Tralasciando quello che ho scritto nel messaggio soprastante, ho cercato di capire meglio dove fosse il problema e l'ho riscontrato in questa riga di codice:
PHP:
$trovagiorno = mysql_query("SELECT * FROM `giorni_attivita` WHERE nome = '$tabella'");
$trovagiorno2 = mysql_query("SELECT * FROM `giorni_attivita_2` WHERE nome = '$tabella'");

if($trovagiorno) {
   $estrai = mysql_fetch_array($trovagiorno);
   $ora = $estrai['ora']; //Ottengo ora della tabella
   $giorno = 1;
} else {
   $estrai = mysql_fetch_array($trovagiorno2);
   $ora = $estrai['ora']; //Ottengo ora della tabella
   $giorno = 2;
}

Stampando i valori della variabile 'ora' tramite un ciclo i valori 'ora' del giorno 1 vengono stampati, mentre quelli del giorno 2 no e rimane uno spazio bianco... come mai?
 

akp

Utente Attivo
8 Giu 2015
133
0
16
Penso perché trovando "trovagiorno" nell'if non va ad eseguire l'else. Secondo me dovrebbe andare togliendo l'if-else

Inviato dal mio XT1068 utilizzando Tapatalk
 
Discussioni simili
Autore Titolo Forum Risposte Data
I PROBLEMA CODICE INSERTION SORT C C/C++ 2
I PROBLEMA CODICE C - INSERTION SORT Presentati al Forum 1
L [PHP] Problema su codice o server PHP 5
W Problema con cambio colorazione codice su Dreamweaver CC 2017 Windows e Software 0
A problema con codice HTML e CSS 2
A problema : codice javascript Javascript 1
A problema : codice html HTML e CSS 1
P problema con codice php... PHP 7
A problema con codice HTML e CSS 2
A problema caricamento codice <iframe video youtube PHP 3
G Problema con codice php PHP 1
V problema con codice Facebook Like box Social Media Marketing 0
G Problema vB (inserito codice malevolo) PHP 0
T problema con codice... , Javascript 1
L problema youtube ...codice da incorporare PHP 2
J Problema con codice php PHP 1
H Problema riguardo l'estrazione di record dal DB tramite codice univoco PHP 7
Shyson Problema col codice del DB PHP 0
E Problema con il codice PHP 3
P Problema di Undefined variable nel codice PHP PHP 5
A Problema con codice ASP Classic ASP 1
C Problema insolito, codice javascript ignorato Javascript 3
M Problema visualizzazione codice sorgente altro sito PHP 4
C Problema con codice php PHP 2
S Problema visualizzazione codice PHP 4
asevenx problema con codice di sicurezza captcha PHP 2
S [ACCESS] Problema nel creare le tabelle da codice. MS Access 4
T problema con codice html dentro javascript Javascript 1
E Problema pulizia codice jquery jQuery 0
A problema codice php PHP 0
F Problema codice Supporto Mr.Webmaster 0
I Auto-start webradio [Era: Problema con codice] Javascript 0
G Problema ricerca codice PHP 2
B Problema con codice php PHP 3
V Problema estrabolazione dati da excel in mysql attraverso codice php PHP 10
F Problema pulsante cerca record su access Database 0
I Sto progettando nuovi siti utilizzando bootstrap e devo dire funziona bene, l'unico problema e la maschera -moz- HTML e CSS 0
K Problema form update PHP 2
O problema con dvr dahua xvr5116 IP Cam e Videosorveglianza 0
S Problema nel ciclare un json Javascript 0
G Problema con Xampp Web Server 1
andrea barletta Problema con miniature comandi Photoshop 0
I problema con alice Posta Elettronica 0
K Problema Inner join PHP 1
F firefox problema http Linux e Software 0
N Problema con position absolute e overflow HTML e CSS 4
E Problema jquery Success jQuery 2
L Problema con inner join PHP 11
K [php] Problema con inner join PHP 4
E problema selezione sfumata Photoshop 2

Discussioni simili