PHP My Sql SELECT

RDLG2A Messages postés 44 Date d'inscription lundi 29 mars 2004 Statut Membre Dernière intervention 24 mars 2006 - 22 juin 2005 à 09:08
RDLG2A Messages postés 44 Date d'inscription lundi 29 mars 2004 Statut Membre Dernière intervention 24 mars 2006 - 22 juin 2005 à 13:07
Bonjour à tous.

Je voudrais interroger une base de données pour vérifier l'existence d'une information, tout en ne sachant pas si elle existe.

En local, ce script fonctionne
$query ='(SELECT idClient FROM clients WHERE mailClient ="'.$email.'")';


$result=mysql_query($query,$connexion)or die("Erreur interne : connexion au serveur BD refusée SELECT");
$ligne=mysql_fetch_row($result);

if ($idClient==0){......}

Mais pas sur le serveur!

Quelle astuce dois je utiliser?

Merci d'avance.

8 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
22 juin 2005 à 09:23
Hello,



A mon avis tu as de tres mauvaises habitudes de programmation... :

$ligne=mysql_fetch_row($result);

if ($ligne[0] == 0){......}



Ou mieux a mon sens, si tu veux juste savoir si l'info existe :

$nbr = mysql_num_rows ($result);

if ($nbr === 0) { ... }
0
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
22 juin 2005 à 10:02
" Ou mieux a mon sens, si tu veux juste savoir si l'info existe :

$nbr = mysql_num_rows ($result);

if ($nbr === 0) { ... }"

Autant faire directement : if ( mysql_num_rows($result) === 0 ) {...}. Ca t'évite de créer une variable pour rien :)



Voir mieux :

$sql "SELECT COUNT(*) as nbr FROM clients WHERE mailClient"'.$email.'" ";

$query = mysql_query($sql);

$sql = mysql_fetch_array($query, MYSQL_ASSOC);

if ( $sql['nbr'] === 0 ) { ... };



Toutes les fonctions se valent de toute facon.
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
22 juin 2005 à 10:10
Effectivement :-)
0
RDLG2A Messages postés 44 Date d'inscription lundi 29 mars 2004 Statut Membre Dernière intervention 24 mars 2006
22 juin 2005 à 10:49
Je te remercie de ton aide... et de ton appreciation :-)
0

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

Posez votre question
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
22 juin 2005 à 12:20
Salut,



" Voir mieux :

$sql "SELECT COUNT(*) as nbr FROM clients WHERE mailClient"'.$email.'" ";

$query = mysql_query($sql);

$sql = mysql_fetch_array($query, MYSQL_ASSOC);

if ( $sql['nbr'] === 0 ) { ... };"



Voire légèrement mieux ^^



Voir mieux :



$requetemysql_query("SELECT COUNT(*) as nbr FROM clients WHERE mailClient'".$email."'");

$sql = mysql_fetch_row($requete);

if ($sql[0] === 0 )

{

//code

}


^^



a +
<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
22 juin 2005 à 12:53
Aussi, mais si tu change la gueule de ta table, et que tu modifies un
peu tout, le $sql[0] ne vaudra peut-être plus la même chose :)

Alors que si tu utilise le fetch_array, et que ton champ s'appèle toujours 'mailClient', y'a moins de problème à ce sujet =)
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
22 juin 2005 à 13:01
Bah si tu modifies ta requête, tu peux très bien conserver l'ordre des
champs, bref je privilégie la rapidité dans ce cas là, au fetch_array

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
RDLG2A Messages postés 44 Date d'inscription lundi 29 mars 2004 Statut Membre Dernière intervention 24 mars 2006
22 juin 2005 à 13:07
je vous remercie de vos bons conseils.... que j'appliquerai.
A bientôt
0
Rejoignez-nous