21. januar 2004 - 16:07Der er
11 kommentarer og 1 løsning
3 query'er til 1
hej...
kan dette laves på en anden måde så der kun skal køres en query?
<? foreach($list_arr['list'] as $party_id) { $get = mysql_query("SELECT added, time_start, name, area FROM $DB.party WHERE id=$party_id"); $row = mysql_fetch_array($get);
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Har du adgang til PHPadmin ? så kan du blot klippe kode ind og erstatte din php var $party_id med en konstant '432'.
Ellers er php koden meget analog til det du selv har lavet i ovenstående
$get = mysql_query("select t1.added, t1.time_start, t1.name, t1.area, t2.*, t3.* from $DB.party t1 , $DB.party_music t2 , $DB.user_party t3 where t1.id=$party_id and t1.id = t2.party_id and t2.party_id = t3.party_id");
Jeg bemærker iøvrigt at du laver en foreach omring dine sql kald, det burde ikke være nødvendigt, erstat istedet t1.id=$party_id med en t1.id in ($party_id1, $party_id2, osv, osv)
Hvis du så også lægger index på id og party_id på dine tabeller vil du formentlig opleve en kæmpe performaceforbedring.
SELECT t_party.id, t_party.name, t_music.music, t_user.user_id FROM (test.party t_party LEFT JOIN test.party_music t_music ON t_party.id = t_music.party_id) LEFT JOIN test.party_user t_user ON t_party.id = t_user.party_id WHERE t_party.id = $party_id
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.