Deux requêtes

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Deux requêtes

par albat » 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.

par Mathieu68 » 14 oct. 2008, 17:55

merci :D

par zeus » 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.

par katagoto » 14 oct. 2008, 15:28

Le COUNT SQL, certaines BDD stockent même ce chiffre, donc forcément, ça va plus vite...

par Mathieu68 » 14 oct. 2008, 13:50

et donc? que vaut-il mieux faire?

par mere-teresa » 14 oct. 2008, 12:30

Pour count(*) c'est la DB qui travaille, pour l'autre c'est PHP qui travaille.

Deux requêtes

par Mathieu68 » 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...