Champs vide en mysql

eryk17 Messages postés 138 Date d'inscription lundi 27 mai 2002 Statut Membre Dernière intervention 29 mai 2006 - 11 mars 2003 à 13:52
docLegi Messages postés 8 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 3 janvier 2004 - 13 déc. 2003 à 14:39
bonjour
jai fai une requete en php avec une bdd mysql
je voudrai selectionner ts les info ded la table forum pour lesquelle le champs reponse_a_id est null. Et je ne sais pas commet faire.vooici ma requete :
$req MYSQL_QUERY("SELECT * FROM forum WHERE reponse_a_id 'NULL' ORDER BY date_verif DESC LIMIT 0, 50");

le message d'erreur provinet de la ligne suivante :
$res = MYSQL_NUMROWS($req);
mais comme cec codee est bon j'en conclut que c'est la requete qui est fausse

10 réponses

cs_hicksman Messages postés 258 Date d'inscription mercredi 14 août 2002 Statut Membre Dernière intervention 23 avril 2004 1
11 mars 2003 à 15:08
1)
$req = MYSQL_QUERY("SELECT * FROM forum WHERE reponse_a_id is NULL ORDER BY date_verif DESC LIMIT 0, 50");

2)
$res = MYSQL_NUM_ROWS($req);

avec ces deux modifs ça devrait mieux marcher!

Hicksman :clown)
0
eryk17 Messages postés 138 Date d'inscription lundi 27 mai 2002 Statut Membre Dernière intervention 29 mai 2006
11 mars 2003 à 15:48
il me met la meme erreur ! sur les 2 lignes
voici la strucure de la table :

CREATE TABLE forum (
id int(11) NOT NULL auto_increment,
nom varchar(255) NOT NULL,
email varchar(255) NOT NULL,
date_verif datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
texte text NOT NULL,
reponse_a_id int(11) REFERENCES forum,
lect int(11) NOT NULL,
titre varchar(255) DEFAULT '- no title -' NOT NULL,
PRIMARY KEY (id),
KEY id (id),
UNIQUE id_2 (id)
);
et l'erreur affichée :
Warning: mysql_numrows(): supplied argument is not a valid MySQL result resource in index.php on line 12

les lignes 11 et 12 sont les 2 lignes modifiés
0
cs_hicksman Messages postés 258 Date d'inscription mercredi 14 août 2002 Statut Membre Dernière intervention 23 avril 2004 1
11 mars 2003 à 16:41
as-tu essayé sans "DESC LIMIT 0, 50"??

Hicksman :clown)
0
cs_hicksman Messages postés 258 Date d'inscription mercredi 14 août 2002 Statut Membre Dernière intervention 23 avril 2004 1
11 mars 2003 à 17:42
Disons qu'elle ne peut executer une requête si elle est à 'null'.
Une chose me gêne sur ta table, c'est le 'references forum' derrière le 'reponse_a_id'. t'es sur que c'est nécessaire si c'est dans la même table?

Hicksman :clown)
0

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

Posez votre question
eryk17 Messages postés 138 Date d'inscription lundi 27 mai 2002 Statut Membre Dernière intervention 29 mai 2006
11 mars 2003 à 17:50
oui car c 'est une clé étrangère emme si c'est dans la même table soit elle reçoit le id du message soit elle reçoit rien
0
cs_hicksman Messages postés 258 Date d'inscription mercredi 14 août 2002 Statut Membre Dernière intervention 23 avril 2004 1
11 mars 2003 à 19:07
je suppose qu'il n'y a rien dans la bdd qui réponde à cette requête! Ca doit le déranger.
je présume qu'il vaux mieux faire un test sur cette requete:
if (mysql_num_rows($req) > 0)
essaies toujours, tu verras bien.

Hicksman :clown)
0
cs_hicksman Messages postés 258 Date d'inscription mercredi 14 août 2002 Statut Membre Dernière intervention 23 avril 2004 1
11 mars 2003 à 19:10
Autre chose, je sépare aussi la requête de son éxécution.
$query = "select * from.....";
$do = mysql_query($query);

Hicksman :clown)
0
SmallToad Messages postés 110 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 26 septembre 2004
12 mars 2003 à 04:13
Tu n'as qu'à faire:

$req = MYSQL_QUERY("SELECT * FROM forum ORDER BY date_verif DESC LIMIT 0, 50");

La spécification du WHERE n'est jamais obligatoire.

A++
-------------------------
SmallToad - Grand maitre PHP
Programmeur C++, java, PHP, etc.
0
docLegi Messages postés 8 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 3 janvier 2004
13 déc. 2003 à 14:39
juste à titre d'information pour ceux qui fouilleraient dans les archives du forum, un champ ne peut JAMAIS être = à "NULL"

mm si le champ est effectivement "NULL", il ne sera pas trouvé dans une clause WHERE champ = 'NULL'

ainsi la requete :$req MYSQL_QUERY("SELECT * FROM forum WHERE reponse_a_id 'NULL' ORDER BY date_verif DESC LIMIT 0, 50");
n'aura jamais aucune réponse

il faut tester avec 'IS' et pas avec =
WHERE champ IS NULL

page de la documentation (traduite) à ce propos :
http://www.mysql.com/doc/fr/Working_with_NULL.html
0
eryk17 Messages postés 138 Date d'inscription lundi 27 mai 2002 Statut Membre Dernière intervention 29 mai 2006
11 mars 2003 à 17:00
il me met tjrs la emme erreur je comprend vraiment pas pourquoi. le MYSQL_NUM_ROWS() doit avoir unne valeur vide pourquoi il me met une erreur a cette ligne est ce que ça signifie qu'elle ne peut pas avoir une valeur vide?
-1
Rejoignez-nous