Ce forum est maintenant fermé, seule cette archive statique reste consultable.
  FORUM Rue-Montgallet.com
  Programmation
  Php - Sql

  mysql error (erreur de syntaxe) Besoin d'aide

Bas de page
Auteur Sujet :

mysql error (erreur de syntaxe) Besoin d'aide

n°16595
elody128
Profil : Jeune recrue
Posté le 19-05-2006 à 15:18:51  
 

Bonjour,
 
Tout d'abord, j'ai fait une recherche sur le forum avant de poser ma question, mais je n'ai rien trouvé qui m'aide  :wahoo:  
 
Je suis en train d'essayer de faire un script en php pour créer une nouevlle entrée dans ma base de donnée; ce sript est sensé servir pour la partie admin d'un musée, je suis en ecole d'infographie et c'est notre sujet imposé (dont depent notre diplome au passage, lol ). Bref ...
Voila mon script php, c'est le contenu de la dernière page, celle qui recupère ce qui a été saisi et qui l'enregistre :  

Code :
  1. <?php
  2. require_once('db.function.php');
  3. require_once("secure.php" );
  4. ConnectDB(); // permet de se connecter à la base
  5. //
  6. $table = $_POST['table']; // recuperation du nom de ma table dans la base de donnée
  7. echo $table;
  8. //-----------------------------------------------------
  9. function RecupNbCivilisation($_table){
  10.  $resultat = mysql_query("SELECT * FROM $_table" );
  11.  return mysql_num_rows($resultat); // recupere le nombre d'enregistrements
  12. };
  13. //-----------------------------------------------------
  14. // on recupere le nombre de fiches et on incremente
  15. $i = RecupNbCivilisation($table)+1;
  16. // attention à l'ordre des champs
  17. // on prepare le debut de la requete
  18. $sql = "INSERT INTO $table SET (id,titre,sstitre,commentaire,civilisation,photo) VALUES('$i'";
  19. // un tableau permet de parcourir le tableau $_POST
  20. $T = array('titre','sstitre','commentaire','civilisation');
  21. foreach($T as $item) {
  22.  // si le champ est vide ou s'il n'y a pas de fichier à uploader
  23.  if(empty($_POST[$item]) || empty($_FILES['nomphoto']['name'])){
  24.   echo "complétez le formulaire";
  25.   $ok = false ;
  26.   break;
  27.  };
  28.  //sinon on continue la requete
  29.  $sql .=",'".$_POST[$item]."'";
  30. };
  31. // on charge le fichier
  32. $img = UploadPhoto();
  33. $sql .= ",'$img')";
  34. echo $sql;
  35. $rq = mysql_query($sql) or die ('Erreur : '.mysql_error());
  36. mysql_close();
  37. // débranchement
  38. header('Location:insert_oeuvre.php');
  39. ?>


Juste une precision : certaines fonctions se trouvent dans une bibliotheque de fonctions à part.
Voila l'erreur qui s'affiche est : Erreur :

Code :
  1. Erreur de syntaxe près de '(id,titre,sstitre,commentaire,civilisation,photo) VALUES('13','u' à la ligne 1


Merci de votre aide :)


Message édité par elody128 le 19-05-2006 à 15:34:55
mood
Pub
Posté le 19-05-2006 à 15:18:51  
 

n°16613
m@noo
je javaïse, je phpïse ^=^
Profil : Habitué
Posté le 22-05-2006 à 08:45:45  
 

ben c'est ta requête SQL qui n'est pas syntaxiquement correcte.
fait un echo $sql quelque part juste avant le mysql_query pour voir comment elle est écrite une fois construite.
 
essaie de la copier/coller dans phpMyAdmin et de l'exécuter
 
NB: ligne 1 correspond à la ligne de requête envoyée à MySQL et pas à ta ligne de script php

n°16615
samisam3
hassan sehef...c possible
Profil : Jeune recrue
Posté le 22-05-2006 à 14:19:03  
 

test

n°16773
elody128
Profil : Jeune recrue
Posté le 01-06-2006 à 13:18:08  
 

Merci pour votre aide, j'ai finalement trouvé ce qui n'allait pas... Il y avait moins de variables à entrer dans la table que de champs dans cette même table, chose que visiblement, mysql à du mal à accepter lol. Bon, comme en plus les variables n'étaient pas dans le bon ordre, je pense que ça l'a achevé  :wahoo: . Voila, je le saurai pour la prochaine fois...

n°17427
996pierrot
Profil : Jeune recrue
Posté le 05-09-2006 à 20:51:31  
 

bonsoir, je  cherche aussi la petite chose qui ne va pas dans ma ligne et qui me vaut ce message:  
erreur de sql
Erreur de syntaxe près de '* FROM 2bf_posts WHERE nom = poker' à la ligne 1
 
Le code est le suivant:
<?php  
$table1="filtre_anti_spam";//nom de la table dans la bdd
$table2="2bf_posts";
   
include('local_connect.php');
// on va chercher le mot clé dans la table filtre
            // on ecrit la requette sql
    $requete1 = "select * from $table1";
 $resultat1 = mysql_query($requete1) or die('erreur de sql'.$sql.'<br>'.mysql_error());
 while($val = mysql_fetch_array($resultat1)){
 $filtre2=$val['filtre'];
 // on va supprimer les posts qui contienne le mot clé dans la table 2bf_posts
 // on ecrit la requette sql
    $requete2 = "DELETE * FROM $table2 WHERE nom LIKE  
 $filtre2 ";
 $resultat2 = mysql_query($requete2) or die('erreur de sql'.$sql.'<br>'.mysql_error());
 }
 // on ferme la connection
    mysql_close();
?>
je vous remercie pour votre aide
996pierrot

n°17428
m@noo
je javaïse, je phpïse ^=^
Profil : Habitué
Posté le 06-09-2006 à 08:40:58  
 

y'a pas d'astérisque dans un ordre DELETE
 
DELETE FROM maTable WHERE mesConditions
 
Petite astuce tu peux tester tes requêtes dans phpMyAdmin par exemple avant de les écrires dans ton script php.


Message édité par m@noo le 06-09-2006 à 08:41:12
n°17455
996pierrot
Profil : Jeune recrue
Posté le 11-09-2006 à 23:13:35  
 

merci beaucoup manoo
j'essayerais comme ça la prochaine fois.
bye

n°18830
laura14058​7
Profil : Jeune recrue
Posté le 19-07-2007 à 16:28:36  
 

Help svp,
 
j'ai aussi une erreur de syntaxe dans une requête:
 
$query1="SELECT cat FROM $type";
$ress1= mysql_query($query1) or die("erreur sur requete:" . mysql_error());
 
où $type=cd-r
je suppose que l'erreur vient du signe -, mais je dois garder ce signe!!
Y'a-t-il un moyen que mysql l'interprète correctement?
 
merci de votre aide

n°19306
Adrix08
Profil : Jeune recrue
Posté le 03-06-2008 à 14:27:07  
 

<?php
 
$db=mysql_connect("localhost", "ADMIN", "admin" );
mysql_select_db("flux_rss",$db);
 
$recherche=$_POST["recherche"];
$rubrique=$_POST["rubrique"];
$sql = ("SELECT idArticle, rubrique, dateArticle FROM infosexpert WHERE rubrique ='".$rubrique."'AND texteParagraphe LIKE '"%$recherche%"' " );
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$res = mysql_fetch_array($req);
 
echo $res;
?>
 
mon projet a moi et de realiser un moteur de recherche pour mon entreprise de stage, le formulaire retourne bien les variable, mais le message qui s'affiche au moment de traiter la recherche et le suivant :  
 
Erreur SQL !
SELECT idArticle, rubrique, dateArticle FROM infosexpert WHERE rubrique ='social
Erreur de syntaxe près de ''social' à la ligne 1
 
Quelqu'un pourrait-il me reseigner svp ?
Merci

n°19307
kurt11
Profil : Habitué
Posté le 03-06-2008 à 17:05:09  
 

Essaie avec ça.
$sql = ("SELECT idArticle, rubrique, dateArticle FROM infosexpert WHERE rubrique =\"".$rubrique."\"AND texteParagraphe LIKE \""%$recherche%"\"" );


---------------
[:zzzinv] Membre de la team Mozilla Firefox et Opera
n°19468
Brendonald
Profil : Jeune recrue
Posté le 03-03-2009 à 10:02:24  
 

Laura,
 
Tu dois concaténer ta variable avec ta requête.
 
$query1="SELECT cat FROM $type";  
devient
$query1='SELECT cat FROM\''.$type.'\'';
 
Sinon mysql pense que tu cherche "cat" dans le champ "$type", et non dans la valeur de la variable.

  FORUM Rue-Montgallet.com
  Programmation
  Php - Sql

  mysql error (erreur de syntaxe) Besoin d'aide

© 2000-2018 Forum.rue-montgallet.com - Tous droits réservés