Question PHP - mysql

Question PHP - mysql - PHP - Programmation

Marsh Posté le 07-03-2005 à 11:08:38    

Bonjour à tous!
 
Je fais une requête sql avec SELECT et WHERE!
 
Comment dois-je faire pour savoir si il n'y a aucun enregistrement qui satisfait la condition WHERE? (pour savoir si le SELECT est vide quoi!)
 
Merci beaucoup!


---------------
Il ne faut pas se pencher sur le passé, on risquerait de tomber dans l'oublis... (Coluche)
Reply

Marsh Posté le 07-03-2005 à 11:08:38   

Reply

Marsh Posté le 07-03-2005 à 11:14:09    

bah ton select ne va rien retourner...[:skeye]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 07-03-2005 à 11:14:40    

(et un appel à mysql_fetch_* retournera donc false...)


Message édité par skeye le 07-03-2005 à 11:14:47

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 07-03-2005 à 11:21:44    

mais le problème c'est que il me met des erreures sur la page si c'est vide... mais si je fais un truc de ce style:
if (mysql_fetch_array($requête))
Il va entrer dans le "if" seulement si il revoye true... donc si il y a qqch dans la requête? c'est juste?
(je vais tester!)


---------------
Il ne faut pas se pencher sur le passé, on risquerait de tomber dans l'oublis... (Coluche)
Reply

Marsh Posté le 07-03-2005 à 11:23:38    

g_bu a écrit :

mais le problème c'est que il me met des erreures sur la page si c'est vide... mais si je fais un truc de ce style:
if (mysql_fetch_array($requête))
Il va entrer dans le "if" seulement si il revoye true... donc si il y a qqch dans la requête? c'est juste?
(je vais tester!)


ben oui.
Tu n'as plus qu'à traiter le cas où ça ne retourne rien dans le else...[:skeye]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 07-03-2005 à 11:23:59    

$dbhost="localhost";
$user="root";   // login
$passwd="";   // password
$usebdd="tabase";   // identifiant dsn
 
 
$connexion = mysql_connect($dbhost,$user,$passwd);
$db = mysql_select_db($usebdd, $connexion);
 
$Query="SELECT ID FROM images WHERE Titre='$Titre'";
$Result=mysql_query($Query,$Connexion);
$Nblign=mysql_numrows($Result);
 
Dans ton cas $Nblign == '0'

Reply

Marsh Posté le 07-03-2005 à 11:25:40    

Gagman a écrit :

$dbhost="localhost";
$user="root";   // login
$passwd="";   // password
$usebdd="tabase";   // identifiant dsn
 
 
$connexion = mysql_connect($dbhost,$user,$passwd);
$db = mysql_select_db($usebdd, $connexion);
 
$Query="SELECT ID FROM images WHERE Titre='$Titre'";
$Result=mysql_query($Query,$Connexion);
$Nblign=mysql_numrows($Result);
 
Dans ton cas $Nblign == '0'


attention!
http://www.nexen.net/docs/php/anno [...] ql_numrows

Citation :


Note
 
Si vous utilisez mysql_unbuffered_query , mysql_num_rows ne retournera pas le nombre correct de lignes lues tant que vous n'aurez pas lu toutes les lignes de la base.  


 
Donc mieux vaut traiter le cas 'normal' dans un if/while(mysql_fetch_truc), puis le cas 'pas de réponses' dans un if(mysql_num_rows() === 0)...


Message édité par skeye le 07-03-2005 à 11:26:53

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 07-03-2005 à 11:32:26    

l'exemple donné est avec mysql_query et non un mysql_unbuffered_query merci.

Reply

Marsh Posté le 07-03-2005 à 11:37:45    

Gagman a écrit :

l'exemple donné est avec mysql_query et non un mysql_unbuffered_query merci.


 
Je disais pas ça pour toi mais pour lui...vu qu'il n'a pas l'air d'aller voir souvent dans la doc par lui-même il aurait pu tomber dans le panneau.
Et d'ailleurs les fonctions pour oracle (ora_*) ont exactement le même problème,  ce qui m'a fait prendre cette habitude... ;)


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 07-03-2005 à 11:51:24    

Merci à tous! j'ai piocher dans la doc mais je me demandais si il y avait une fonction pour savoir si c'est vide ou pas... et j'ai pas pensé à mysql_numrows! dsl chuis débutant!


---------------
Il ne faut pas se pencher sur le passé, on risquerait de tomber dans l'oublis... (Coluche)
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed