Connettersi ad un database in un ciclo while

Ciao, ho un dubbio che vorrei togliermi. Ho bisogno di connettermi ad un database che ha 2 tabelle. Da entrambe ho bisogno di recuperare dei valori. So che potrei fare una relazione (corregetimi se sbaglio) tra loro e scrivere ad esempio:

$strsql = "select * from log, utenti where data='$data' and user='$nome' and user='$username'";

while (condizione)

{

........

}

Io però quando ho creato il sito web e il relativo database non conoscevo il modello E/R e quindi ho fatto così:

$strsql1 = "select * from log where data='$data' and user='$nome'";

while (condizione)

{

seconda query e quindi seconda connessione al database contenente l' altra tabella, cioè quella utenti

}

Ora la mia domanda è questa: connettendomi troppe volte al database all' interno del ciclo while (per quanti sono gli utenti registrati, impallo tutto prima o poi?

inviato 7 anni fa
MGbyte78
X 0 X

la connessione al database va effettuata una sola volta e tutte le query utilizzaranno tale connessione, senza la necessità di riconnettersi

 :bye:

risposto 7 anni fa
Gianni Tomasicchio
X 0 X

Ok, la connessione la faccio una sola volta e fuori dal ciclo, ma se  in un ciclo while mettessi la seguente  istuzione sarebbe sbagliato (magari a livello logico) anche se ho notato che funziona il tutto?:

$strsql = "select * from log, utenti where data='$data' and user='$nome' and user='$username'";

Dico questo perchè di solito in un ciclo while inserisco delle istruzioni per recuperare i valori dei record e non ho messo mai l' istruzione select. Magari è banale la mia domanda ma non avendo mai avuto un libro di riferimento vorrei capire anche la logica della programmazione.

risposto 7 anni fa
MGbyte78
X 0 X

In generale quando in un ciclo while si effettuano tante SELECT allora forse ci si è dimenticati di effettuare il tutto in un'unica SELECT che vada in JOIN su più tabelle.

A parte un discorso di performance comunque non è poi così grave, ma una corretta valutazione si può fare solo sapendo quante SELECT stai segueno nel ciclo while.

 :bye:

risposto 7 anni fa
Gianni Tomasicchio
X 0 X

Bè, tante quanti sono gli iscritti al sito!! Comunque per ora lascio così, poi se vedo rallentamenti modificherò il database per poter usare la join.

risposto 7 anni fa
MGbyte78
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda