Deux requêtes

Eléphant du PHP | 148 Messages

14 oct. 2008, 11:14

Bonjour,

Petite question, voici deux requêtes: la quel est la plus rapide?
$query = 'SELECT count(*) FROM membre WHERE login="'.mysql_real_escape_string($_POST['login']).'"';
$result = mysql_query($query);
$data = mysql_fetch_array($result);
if ($data[0] != 0) {
					$erreur = "Un membre possède déjà ce login.";
				}
OU
		$query = "SELECT login FROM membre WHERE login='".mysql_real_escape_string($_POST['login'])."'";
		$result = mysql_query($query);
		$nbrRows = mysql_num_rows($result);
et ensuite tester nbrRows...

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

14 oct. 2008, 12:30

Pour count(*) c'est la DB qui travaille, pour l'autre c'est PHP qui travaille.
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Eléphant du PHP | 148 Messages

14 oct. 2008, 13:50

et donc? que vaut-il mieux faire?

Mammouth du PHP | 1668 Messages

14 oct. 2008, 15:28

Le COUNT SQL, certaines BDD stockent même ce chiffre, donc forcément, ça va plus vite...
"À ceux qui poursuivent leurs rêves et se spécialisent dans l'impossible" Joseph Kong

10 ans de PHP, déjà.

"moi jtrouve que katagoto il déchire!" Nagol

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

14 oct. 2008, 15:56

De plus, ça se compte en échange réseau.
Dans le cas de la 1ère requête, le SGBD n'envoi au code PHP qu'une seule valeur numérique.
Dans le cas de la 2nd requête, le SGBD envoi autent de valeur textuelle que de données renvoyées.

Donc, dans le cas où tu n'attend que le total, il vaut mieux la 1ère requête.
Mais si tu compte afficher le nombre de login, puis la liste des login, il vaut mieux la seconde.
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 148 Messages

14 oct. 2008, 17:55

merci :D

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

14 oct. 2008, 19:35

Modération :
Mathieu68, si ta question est résolue, pense à ajouter le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.
Tu peux réaliser cette opération en cliquant sur le bouton Image en haut à gauche de ce sujet.