Verification de l'existance d'un ID dans une base mysql

Fildomen Messages postés 805 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 30 octobre 2010 - 26 juil. 2009 à 13:22
cs_47 Messages postés 197 Date d'inscription mardi 20 janvier 2004 Statut Membre Dernière intervention 20 février 2013 - 27 juil. 2009 à 10:52
Bonjour,
j'ai beau chercher sur le net mais je trouve que des codes pour les select qui retourne plusieurs enregistrements, comme mon ID est unique, mon select retourne au plus un enregistrement. je veux seulement verifier s'il a retourné un enregistrement ou pas ( même le contenu ne m'insteresse pas mais je veux pas utiliser la fonction sql Exists)

if($db = mysql_connect("localhost","root",""))
{
mysql_select_db("base",$db);

$query sprintf("Select ID from Membres where Login '%s' LIMIT 1", mysql_real_escape_string($LoginText));

$result = mysql_query( $query, $db);

if( ?????


Mercii :) !

5 réponses

kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
26 juil. 2009 à 14:18
Salut,

Tu ferai mieux d'utiliser COUNT :
$q "SELECT COUNT(*) FROM city WHERE id 1";
$res = mysql_query($q);

if (mysql_result($res, 0) == 1) {
  echo '1 enregistrement a été trouvé';
} else echo 'pas d'enregistrement trouvé ou plus d\'un';



Cordialement,

Kohntark -
0
Fildomen Messages postés 805 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 30 octobre 2010
26 juil. 2009 à 14:21
merci pour le code, mais count va compter tout les enregistrements alors que moi je sais que la colonne ID est unique donc Select avec Limit 1 sera plus rapide je pense. sinon il n'y a pas une commande pour savoir si Select a retourné un resultat ou pas ?
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
26 juil. 2009 à 15:20
mais count va compter tout les enregistrements alors que moi je sais que la colonne ID est unique donc Select avec Limit 1 sera plus rapide je pense


=> ce n'est pas certain, loin de là, ça dépend, à mon humble avis, de la taille de ta table et de l'endroit où se situe ton enregistrement. Il faudrait faire des tests et regarder ce que dit l'optimiseur mysql. J'aurai tendance à dire que le COUNT est souvent plus rapide et surtout plus régulier dans le temps de réponse. Mais bon, étant donné que c'est un champ d'index la différence doit être minime.


A part exists, que tu ne souhaites pas utiliser, je n'ai pas connaissance d'une autre fonction.
Qu'est ce qui te dérange au juste dans l'utilisation de COUNT ou LIMIT ?


Cordialement,


Kohntark -
0
Fildomen Messages postés 805 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 30 octobre 2010
26 juil. 2009 à 15:39
je n'ai aucun problème avec count et limit , sauf que je me dis que savoir si select a retourné un resultat ou pas va m'aider surement prochainement ! mais utiliser count va resoudre que ce problème que j'ai actuellement.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_47 Messages postés 197 Date d'inscription mardi 20 janvier 2004 Statut Membre Dernière intervention 20 février 2013 1
27 juil. 2009 à 10:52
Bonjour,

Jette un oeil sur cette page

bonne journée
0
Rejoignez-nous