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 17/03/2011, 04h22   #1
Membre habitué
 
Inscription : décembre 2007
Messages : 392
Détails du profil
Informations personnelles :
Localisation : Canada

Informations forums :
Inscription : décembre 2007
Messages : 392
Points : 118
Points : 118
Par défaut Nouvelle BDD et ERREUR MYSQL numero: 1064

Suite a un probleme avec amen.fr, ils ont efface tous mes fichiers, ma BDD mes login mes backup...... et en plus mon nom de domaine ne pointe plus vers mon index.php (ca fait une semaine!!!), j'ai reinstaller provisoirement mon site chez un autre hebergeur et donc recreer une BDD et je constate qu'il ne fonctionne plus

Voici l'erreur

Citation:
ERREUR MYSQL num�ro: 1064
Type de cette 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 ',,) AND valid=1 ORDER BY prixtotal' at line 1
et la ligne en question

Code :
1
2
$sql = "SELECT * FROM menu  WHERE type IN ('fastfd','resto','gastronomie')  AND id IN (".$in.") AND valid=1 ORDER BY prixtotal";
$requete = mysql_query( $sql, $link ) or die( "ERREUR MYSQL numéro: ".mysql_errno()."<br>Type de cette erreur: ".mysql_error()."<br>\n" );
D'ou peut venir l'erreur?

Merci
voyageurdumonde est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/03/2011, 04h29   #2
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 126
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 126
Points : 7 270
Points : 7 270
Bonjour,

Citation:
',,) AND valid=1
Tu as 2 virgules en trop dans la valeur de $in. Fait un echo de la requête pour vérifier.

A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/03/2011, 23h49   #3
Membre habitué
 
Inscription : décembre 2007
Messages : 392
Détails du profil
Informations personnelles :
Localisation : Canada

Informations forums :
Inscription : décembre 2007
Messages : 392
Points : 118
Points : 118
Merci, j'ai supprime la derniere virgule mais tu as raison ma variable est null et je ne comprrend pas pourquoi le fait de changer d'hebergeur de BDD fait changer la pogrammation

Voici comment j'obtiens $in

Code :
1
2
3
4
5
6
7
8
9
10
$result = mysql_query("SELECT id  FROM menu WHERE pays='$catpays' AND type IN (".$typedebp.")" )or die( "ERREUR MYSQL numéro: ".mysql_errno()."<br>Type de cette erreur: ".mysql_error()."<br>\n" );
 
while ($row = mysql_fetch_array($result, $link)) {
   $val[] = $row['id'];
}
 
$in=(empty($val)?"":(implode(",",$val)));
$in = rtrim($in, ',');
 
echo $in;
Elle est ou mon erreur?

Merci
voyageurdumonde est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2011, 00h17   #4
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Ton rtrim c'est un pansement sur une jambe de bois : si tu te retrouves avec deux virgules a la fin c'est que tes deux derniers ids sont vides.

ton $val contient peut etre aussi des données avant de commencer la boucle.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2011, 00h56   #5
Membre habitué
 
Inscription : décembre 2007
Messages : 392
Détails du profil
Informations personnelles :
Localisation : Canada

Informations forums :
Inscription : décembre 2007
Messages : 392
Points : 118
Points : 118
Bon j'ai ecrit cela et maintenant ca refonctionne. Pourquoi?

Code :
1
2
3
4
5
6
7
8
9
$result1 = "SELECT id  FROM menu WHERE pays='$catpays' AND type IN (".$typedebp.")";
$result = mysql_query( $result1, $link ) or die( "ERREUR MYSQL numéro: ".mysql_errno()."<br>Type de cette erreur: ".mysql_error()."<br>\n" );
 
while ($row = mysql_fetch_array($result)) {
   $val[] = $row['id'];
}
//$in =  implode(',',$val);
 
$in=(empty($val)?"":(implode(",",$val)));
Merci
voyageurdumonde est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2011, 09h24   #6
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Que tu n'étais pas sur la bonne base ?
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2011, 18h40   #7
Membre habitué
 
Inscription : décembre 2007
Messages : 392
Détails du profil
Informations personnelles :
Localisation : Canada

Informations forums :
Inscription : décembre 2007
Messages : 392
Points : 118
Points : 118
Je suis juste pasee de MySQL 5.0 a 5.1 et il semble ne plus interpreter le php de la meme facon.
Bon le principal etant le resultat, maintenant ca fonctionne!

Merci
voyageurdumonde est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h18.


 
 
 
 
Partenaires

Hébergement Web