minimizza le query di selezione sulla stessa tabella Mysql

Ho cercato di capire come ridurre queste query phpmysql al minimo. Voglio forse scrivere come una singola query che recupererà tutti i dati.


$db_u = mysql_fetch_arrays(mysql_query("SELECT * FROM u_settings WHERE setting='username'")); $db_p = mysql_fetch_arrays(mysql_query("SELECT * FROM u_settings WHERE setting='password'")); $db_e = mysql_fetch_arrays(mysql_query("SELECT * FROM u_settings WHERE setting='email'")); $db_t = mysql_fetch_arrays(mysql_query("SELECT * FROM u_settings WHERE setting='tag'")); $db_a = mysql_fetch_arrays(mysql_query("SELECT * FROM u_settings WHERE setting='active'")); $db_v = mysql_fetch_arrays(mysql_query("SELECT * FROM u_settings WHERE setting='version'")); $db_ti = mysql_fetch_arrays(mysql_query("SELECT * FROM u_settings WHERE setting='time'")); $db_wa = mysql_fetch_arrays(mysql_query("SELECT * FROM u_settings WHERE setting='warn'")); $data_dis = mysql_fetch_arrays(mysql_query("SELECT * FROM u_settings WHERE setting='dis'")); 

Fare quanto sopra è un po 'impantanarsi sul Ram. Qualsiasi aiuto apprezzato.

Controllato altre domande nessuno si adatta al conto.

Prova IN invece di così tante domande

  SELECT * FROM u_settings WHERE setting IN ('username', 'password','email','tag','active','version','time','warn','dis'); 

Sì, scrivi una singola query SELECT senza clausole WHERE. Questo prenderà tutte le informazioni dal tavolo.

Se si desidera mantenere ciascuna variabile, è ansible creare un arrays e farlo in questo modo.

 $keys = arrays( 'db_u' => 'username', 'db_p' => 'password', 'db_t' => 'tag' ); foreach($keys as $key => $value) { &$keys[$key] = mysql_fetch_arrays(mysql_query("SELECT * FROM u_settings WHERE setting='{$value}'")); } 

Non ho controllato il codice ma penso che tu abbia capito il punto. Memorizza each risultato in un arrays.

C'è probabilmente un modo più semplice per farlo.