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

Signaler
Messages postés
805
Date d'inscription
jeudi 22 mai 2003
Statut
Membre
Dernière intervention
30 octobre 2010
-
Messages postés
197
Date d'inscription
mardi 20 janvier 2004
Statut
Membre
Dernière intervention
20 février 2013
-
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

Messages postés
3706
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
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 -
Messages postés
805
Date d'inscription
jeudi 22 mai 2003
Statut
Membre
Dernière intervention
30 octobre 2010

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 ?
Messages postés
3706
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
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 -
Messages postés
805
Date d'inscription
jeudi 22 mai 2003
Statut
Membre
Dernière intervention
30 octobre 2010

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.
Messages postés
197
Date d'inscription
mardi 20 janvier 2004
Statut
Membre
Dernière intervention
20 février 2013
1
Bonjour,

Jette un oeil sur cette page

bonne journée