Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2141 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [Besoin d'aide]: php dans requête SQL qui ne fonctionne pas

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Besoin d'aide]: php dans requête SQL qui ne fonctionne pas

n°1884758
Sladix
Posté le 14-05-2009 à 22:14:31  profilanswer
 

Bonsoir,
 
Je veux inclure du php pour récupérer des variables dans une requête SQL...
 
quand j'essaye ça:
 

Code :
  1. $requete="INSERT INTO"$_POST['categorie']" ('titre','texte','monImage') VALUES ("$_POST['titre']","$_POST['texte']","$_POST['monImage']" )";


 
il me met une erreur de synthaxe, et quand j'essaye
 

Code :
  1. $requete="INSERT INTO '$_POST['categorie']' ('titre','texte','monImage') VALUES ('$_POST['titre']','$_POST['texte']','$_POST['monImage']')";


 
il me met Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in C:\wamp\www\Site\ajouterArticle.php on line 38


Message édité par Sladix le 15-05-2009 à 15:10:24
mood
Publicité
Posté le 14-05-2009 à 22:14:31  profilanswer
 

n°1884835
Deamon
Posté le 15-05-2009 à 09:47:44  profilanswer
 

essaye d'utiliser le . comme opérateur de concaténation.


Message édité par Deamon le 15-05-2009 à 09:47:59
n°1884907
bixibu
Ca ... c'est fait!
Posté le 15-05-2009 à 11:40:25  profilanswer
 

plusieurs choses :
-tu as oublié les guillemets simple qui entournent les chaine des champs mysql (une fois que PHP les aura insérés)
-il faut concaténer les variables avec le "." quand tu utilise des varaible du type $var["value"] (echo "coucou ".$var["value"].", ca va?"; ) , tu aurait pu t'en passer dans le cas de l'insertion dans une chaine d'une variable $var (echo "coucou $var ca va?"; )

 

donc :

 
Code :
  1. $requete="INSERT INTO ".$_POST['categorie']." ('titre','texte','monImage') VALUES ('".$_POST['titre']."','".$_POST['texte']."','".$_POST['monImage']."' )";
 


Message édité par bixibu le 15-05-2009 à 11:49:55

---------------
App Android NextGP : Store - TU | Makerworld
n°1884910
bixibu
Ca ... c'est fait!
Posté le 15-05-2009 à 11:49:27  profilanswer
 

Ha ouais et puis la tu est piratable à souhait...
 
faut proteger tes valeurs.. regarde la doc PHP du coté de mysql_real_escape_string entre autre


---------------
App Android NextGP : Store - TU | Makerworld
n°1884991
Sladix
Posté le 15-05-2009 à 15:09:32  profilanswer
 

Merci, bon, voilà le code de ma page:
 

Code :
  1. <html>
  2. <link rel="stylesheet" type="text/css" href="style.css">
  3. <div id="divLogin">
  4. <form method="post" action="ajouterArticle.php" enctype="text/plain">
  5. <select class="champ" name="categorie">
  6.  <option name="jeuxVideo">Jeux vidéo</option>
  7.  <option name="musique">Musique</option>
  8.  <option name="divers">Divers</option>
  9. </select><br/>
  10. Ajouter une image: <input class="champ" type="file"  name="monImage"/><br/>
  11. <input class="champ" value="Nom de la news" type="texte" name="titre"/>
  12. <br>
  13. <textarea class="champ"  type="text" name="texte">Tapez votre texte ici</textarea>
  14. <button class="boutton" type="submit">Envoyer</button>
  15. </form>
  16. </div>
  17. <?php
  18. if($_POST!= false)
  19. {
  20. $pdo =new PDO("mysql:host=localhost;dbname=site","root","" );
  21. $pdo_statement=$pdo->prepare("INSERTINTO ".$_POST['categorie']."('titre','texte','image') VALUES ('".$_POST['titre']."','".$_POST['texte']."','".$_POST['monImage']."')" );
  22. $pdo_statement->execute();
  23. }
  24. ?>
  25. </html>


 
 
Le problème maintenant c'est que quand je lance ça, il me met aucune erreur mais n'ajoute rien à la base de donnée O_o


Message édité par Sladix le 15-05-2009 à 15:11:42
n°1885012
guybrush02
Posté le 15-05-2009 à 15:54:54  profilanswer
 

Rajoute entre les lignes 22-23 un echo "coucou !"; histoire de voir que tu rentres bien dans ton test (j'ai un doute sur le test, mais je ne connais pas assez bien php pour confirmer).  
 
Par ailleurs, il manque des espaces en ligne 24 dans ta requête, ce qui devait normalement provoquer une erreur (d'où le doute que le test se produise bien).  
 
La requête devrait ressembler davantage à :
"INSERT INTO ".$_POST['categorie']." ('titre','texte','image') VALUES ('".$_POST['titre']."','".$_POST['texte']."','".$_POST['monImage']."')"
 
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [Besoin d'aide]: php dans requête SQL qui ne fonctionne pas

 

Sujets relatifs
[Besoin d'aide]: Problème de jQueryrequete https
[Résolut] Besoin d'aide : utilisation de toute la hauteur d'une pageRequète de Noob
Requete SQL , PHP et Date (mois)[PHP/mySQL] Different resultat d'une equete SQL entre PHP / phpMyAdmin
Aide avec les servlets :) 
Plus de sujets relatifs à : [Besoin d'aide]: php dans requête SQL qui ne fonctionne pas


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR