[SQL] Erreur bizarre ds requête toute simple

Résolu
plubarj Messages postés 101 Date d'inscription   Statut Contributeur Dernière intervention   -  
plubarj Messages postés 101 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
Je deviens fou avec une stupide requête qui me fait une erreur d'exécution dans une page en php:
SELECT * FROM phpbb_posts WHERE (phpbb_posts.forum_id = 10) 

J'obtiens une erreur:
SQL ERROR [ mysql ]
[0]
SQL
No values specified for SQL IN comparison

Je remplace mon 10 par 5 et là, pas d'erreur.
Pourtant je colle ma requête dans l'admin de base de donnée Phpmyadmin et ça passe très bien.
Que fais-je de faux dans ma syntaxe?
Merci beaucoup de votre aide
A voir également:

12 réponses

dje06 Messages postés 286 Date d'inscription   Statut Membre Dernière intervention   23
 
euh, quand tu changes le numéro de l'identifiant 10 par 5, ca fonctionne bien?
0
plubarj Messages postés 101 Date d'inscription   Statut Contributeur Dernière intervention   6
 
Oui, avec 8 j'ai la même erreur
Et tout ça fonctionne bien dans phpmyadmin.
J'ai bien des record correspondant à 8 ou 10
0
dje06 Messages postés 286 Date d'inscription   Statut Membre Dernière intervention   23
 
quand tu fais tes test, tu les fais dans ton programme en php ou dans php myadmin?
0
plubarj Messages postés 101 Date d'inscription   Statut Contributeur Dernière intervention   6
 
Je les fais directement dans le code
$sql = 'SELECT * FROM phpbb_posts WHERE forum_id = 10 ';
C'est peut être là qu'il y a un bug?
0
dje06 Messages postés 286 Date d'inscription   Statut Membre Dernière intervention   23
 
ben si tu change l'identifiant 10 par 5 dans ton code et que ca marche bien à ce moment là, ca prouve bien que ton code est bon
tu as fais le test?
0
plubarj Messages postés 101 Date d'inscription   Statut Contributeur Dernière intervention   6
 
Oui, avec 5 c'est bon, avec 7 aussi, mais pas 8, pas 10, etc
Alors que j'ai bien des enregistrements qui correspondent et que dans phpmyadmin je les trouvent...
thx anyway
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
Salut,

la syntaxe:

SELECT * FROM phpbb_posts WHERE forum_id = '10'


pas de parenthèses et pas besoin de repréciser la table puisque tu la mets dans le FROM
0
plubarj Messages postés 101 Date d'inscription   Statut Contributeur Dernière intervention   6
 
Merci à tous, mais rien à faire, c'est totalement déprimant :-(
J'essaie ça:
$sql = 'SELECT * FROM phpbb_posts WHERE forum_id = \'10\'';
et que dalle! Même erreur.
0

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

Posez votre question
dje06 Messages postés 286 Date d'inscription   Statut Membre Dernière intervention   23
 
euh tente peut etre

SELECT * FROM phpbb_posts WHERE forum_id = "10"

des doubles cotes...
0
plubarj Messages postés 101 Date d'inscription   Statut Contributeur Dernière intervention   6
 
Merci les gars, vous êtes vraiment patients avec mon problème!
Malheureusement ça marche pas non plus avec des " "...
je suis maudit...
0
dje06 Messages postés 286 Date d'inscription   Statut Membre Dernière intervention   23
 
mais ce que je comprend pas c'est pk ca marche avec 5 mais pas avec 10???
a ce moment là, enregistre tout, ferme tout et relance... qui sait...
0
plubarj Messages postés 101 Date d'inscription   Statut Contributeur Dernière intervention   6
 
Je peux malheureusement pas redémarrer mysql: il est hosté je sais pas trop où.
Par contre j'ai fait un flush, vérifié la table, réparé (mais elle est en ordre), optimisé, etc.

N'empêche que tu dois avoir raison parce qu'avec 8, ça passe maintenant !
Peut-être que lundi ce sera ok avec 10?!?
cheers
0
dje06 Messages postés 286 Date d'inscription   Statut Membre Dernière intervention   23
 
mdrrr, le progrès des dev en force lol.
Cependant, je suis un peu HS là je n'ai plus quoi te dire car ca veut bien dire que ta fonction marche. Peut etre un soucis avec la DB...
0
plubarj Messages postés 101 Date d'inscription   Statut Contributeur Dernière intervention   6
 
Un truc de fou
En tout cas, merci encore pour les nombreuses tentatives de sauvetage!
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
Salut,

par phpMyadmin regardes le champ forum_id si il est bien en INT

et si cette valeur 10 existe bien réelement dans ta table.

l'erreur:
No values specified for SQL IN comparison

semble vouloir dire que tu n'as pas de valeur correspondante à la comparaison dans la requette

et le code:

$query="SELECT * FROM phpbb_posts WHERE forum_id = '10'";
$rep=mysql_query($query);
 echo "Nombre de resultats trouves: ".mysql_num_rows($rep);
while($result=mysql_fetch_array($rep)){

     echo "<br>".$result['forum_id'];

}
0
plubarj Messages postés 101 Date d'inscription   Statut Contributeur Dernière intervention   6
 
Hello Alain
Merci 1000* pour l'input: le bout de code que tu m'as proposé m'a enfin ouvert les yeux et fait réaliser que l'erreur était en fait plus bas dans le code (en récupérant une liste d'attachments). Par un malheureux hasard, ce n'est qu'en recherchant les éléments du forum_id 10 que l'erreur était provoquée. Et vu le message d'erreur retourné, j'ai cru que le problème venait de cette requête là.
Bref, mea culpa et merci encore à tous pour votre aide.
Cheers

Plubarj Tumeur
0