Réunir 2 requetes sql en une

  • Auteur de la discussion Auteur de la discussion sff
  • Date de début Date de début
WRInaute impliqué
Bonjour,

J'aimerais savoir comment je pourrais faire pour faire une seule requete au lieu de 2 dans ce code. Surement avec un jointure quelconque. Pouvez vous m'aider ?

Merci

Code:
$listquery = mysql_query(sprintf("SELECT id, date, contact FROM %s_contacts WHERE id_user='%d' ORDER BY contact DESC LIMIT %d, %d", $mysql->pref, mysql_real_escape_string($userrow['id']), $limit_start, $pagination));

while ($listrow = mysql_fetch_assoc($listquery)) {

			$playerquery = mysql_query(sprintf("SELECT charname, avatar FROM %s_users WHERE id='%d' LIMIT 1", $mysql->pref, mysql_real_escape_string($listrow['contact'])));
			$playerrow = mysql_fetch_assoc($playerquery);

			echo 'texte ici';
			
		}
 
WRInaute passionné
Essaye un truc du genre:
Code:
SELECT %s_contacts.id, %s_contacts.date, %s_contacts.contact, %s_users.charname, %s_users.avatar 
FROM %s_users 
LEFT JOIN %s_contacts ON %s_contacts.id=%s_users.id 
WHERE id_user='%d' ORDER BY %s_contacts.contact DESC LIMIT %d, %d"
 
WRInaute impliqué
Merci Anto1982 ca fonctionne impécable. En vitesse d'exécution c'est plus rapide avec une seule requête ?
 
WRInaute impliqué
Beaucoup plus rapide pour 2 principales raisons : une seule connexion à ta base et une seule requête, donc une seule fois les temps de latence entre PHP et ta base ... alors que ta première version pouvait faire de nombreux passages ;)
En plus ton code est plus court en PHP, donc exécute plus vite je présume !
 
Discussions similaires
Haut