Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/07/2011, 17h54   #1
Invité de passage
 
rio ugo
Inscription : avril 2010
Messages : 11
Détails du profil
Informations personnelles :
Nom : rio ugo

Informations forums :
Inscription : avril 2010
Messages : 11
Points : 2
Points : 2
Par défaut Petite Erreur de syntaxe SQL difficilement décelable

Bonsoir,

Je viens vers vous car je n'arrive pas à trouver ce petit bug bien gênant :

Sur un forum phpBB 3.0.9, j'ai installé un Mod, une shoutbox (breizh shoutbox 1.4.0).
La shoutbox fonctionne très bien, sauf que pour les visiteurs non-connectés il apparait une erreur SQL de syntaxe apparemment. Sauf qu'il n'y a pa l'air d'en avoir ...
Une fois connecté, l'erreur disparait.

J'ai vu ici et là que je ne suis pas le seul, seulement je n'ai pas trouver de réponse ... c'est bien dommage !

erreur :
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') OR s.shout_forum = 0 ORDER BY s.shout_id DESC LIMIT 20' at line 4

Mais que se passe-t-il ?

Je pense que certains ont trouvé ... Merci de m'aider !

voici le code php de la requête :
Code :
1
2
3
4
5
6
7
$sql = 'SELECT s.*, u.user_id, u.user_colour, u.username, 
u.user_avatar, u.user_avatar_type, u.user_avatar_width, 
u.user_avatar_height
FROM ' .$_table. ' AS s
LEFT JOIN ' . USERS_TABLE . " AS u ON s.shout_user_id = u.user_id
WHERE " .$db->sql_in_set('s.shout_forum', array_keys($auth->acl_getf('f_read', true))). " OR s.shout_forum = 0
ORDER BY s.shout_id DESC";

Je ne sais pas comment récupérer la requête entière ... en SQL débug ? avec mysqld ? mais je ne suis pas en local et n'ai pas la main sur les équipements, à part en phpMyadmnin ...

Il y a un moyen ?

Merci d'avance pour votre aide !

version MySQL 5.1.51
PHP Version 5.2.13
Server API Apache

ugo
hgushgus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2011, 21h51   #2
Modérateur
 
Avatar de al1_24
 
Homme Alain
Ingénieur d'études décisionnel
Inscription : mai 2002
Messages : 4 445
Détails du profil
Informations personnelles :
Nom : Homme Alain
Âge : 51
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études décisionnel
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 4 445
Points : 7 532
Points : 7 532
Ne maitrisant pas PHP je peux difficilement t'aider mais... qu'est censée retourner l'expression $db->sql_in_set('s.shout_forum', array_keys($auth->acl_getf('f_read', true))) ?
__________________
Modérateur Langage SQL
Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
N'oubliez pas le bouton et pensez aux balises [code]
Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
al1_24 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2011, 23h22   #3
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 008
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 008
Points : 18 279
Points : 18 279
Envoyer un message via MSN à CinePhil
Fais un echo de la requête et tu verras sûrement l'erreur probablement due au sql_in_set
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2011, 17h46   #4
Invité de passage
 
rio ugo
Inscription : avril 2010
Messages : 11
Détails du profil
Informations personnelles :
Nom : rio ugo

Informations forums :
Inscription : avril 2010
Messages : 11
Points : 2
Points : 2
Bonjour,

merci 1000 fois de prendre le temps de me répondre !

al1_24, je ne sais pas ce qu'est sensé retourner l'expression, ce n'est pas de moi.

CinePhil, j'ai essayé en écrivant echo $sql mais rien n'apparait ... ça parait logique puisqu'elle plante, non ?

est-ce qu'il existe coté serveur un log d'erreur ou avec mysqld, mais il faut des autorisations ...

je suis perdu !

ugo
hgushgus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2011, 21h12   #5
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 008
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 008
Points : 18 279
Points : 18 279
Envoyer un message via MSN à CinePhil
Tu as bien mis ton echo $sql juste après la requête dans ton programme et tu as exécuté le programme ?

Si ce programme est à l'intérieur d'une fonction plus complexe, ajoute un exit après le echo $sql.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2011, 22h52   #6
Invité de passage
 
rio ugo
Inscription : avril 2010
Messages : 11
Détails du profil
Informations personnelles :
Nom : rio ugo

Informations forums :
Inscription : avril 2010
Messages : 11
Points : 2
Points : 2
Par défaut $sql

Bonsoir,

Juste après la requête, ça signifie bien après la ligne :

Code :
1
2
ORDER BY s.shout_id DESC";
echo $sql;
???

Et j'ai tenté avec l'exit :

Rien ne s'affiche non plus !

Mystère (enfin pour moi)

ugo
hgushgus est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h05.


 
 
 
 
Partenaires

Hébergement Web