begin process at 2012 05 28 09:23:38
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Débutant(e)

 > 

Concaténation dans une requête SQL


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Concaténation dans une requête SQL

mardi 30 mars 2010 à 01:29:38 | Concaténation dans une requête SQL

BenamourJr

Bonsoir !

J'essaye depuis quelques temps de faire fonctionner une requête SQL... en vain :s
Dans mon code je récupère deux types de variables provenant d'un formulaire (des $_POST['lien1'], $_POST['lien2'], $_POST['lien3'],... et ainsi de suite ainsi que des $_POST['id1'], $_POST['id2'],...) que j'utilise dans une requête SQL que voici :

Code PHP :
<?php
for ($nb_lignes = 1; $nb_lignes <= $_POST['nb_liens']; $nb_lignes++)
{
	$table = $_POST['lien' . $nb_lignes . ''];
	$id2 = $_POST['id' . $nb_lignes . ''];
	$requete = "INSERT INTO ".$table."(id_article, id2) VALUES('".$_GET['id']."', '".$id2."')";
	echo $requete . '<br />'; // que j'ai inséré pour y voir plus clair dans mon erreur
	$bdd->exec($requete);
}
?>


l'echo $requete me retourne ceci quand $_POST['nb_liens'] vaut par exemple 3 :

INSERT INTO article_presse_dossier(id_article, id2) VALUES('47', '5')
INSERT INTO article_presse_individu(id_article, id2) VALUES('47', '2')
INSERT INTO article_presse_dossier(id_article, id2) VALUES('47', '2')

Ce qui me semble tout à fait correct, puis que j'ai les champs 'id_article' et 'id2' dans les deux tables concernées. Seulement voila, rien n'est ajouté dans mes tables... ca ne fonctionne pas :s

Si quelqu'un pouvait m'aider à trouver mon erreur je lui en serais vraiment très reconnaissant, merci ! :)
mardi 30 mars 2010 à 09:19:04 | Re : Concaténation dans une requête SQL

Tonio_35

Réponse acceptée !
Bonjour,

As tu essayé dans un premier temps le retour d'erreur SQL pour voir si tout allais bien :
Code PHP :
<?php
$bdd->exec($requete) or die(print_r($bdd->errorInfo(), true));
?>


_________________________________
Min iPomme
mardi 30 mars 2010 à 11:26:56 | Re : Concaténation dans une requête SQL

BenamourJr

en effet, j'ai ajouté un petit or die(print_r($bdd->errorInfo(), true)) et j'ai directement vu d'où venait mon erreur (le nom de mon champ c'est id_article_presse et non id_article... xD). Merci en tout cas :)

Par contre maintenant j'ai un autre problème :s j'ai utilisé les requêtes préparés mais apparemment je ne peux pas les utiliser pour la variable contenant le nom de ma table, ca donne donc ceci :

Code PHP :
<?php
for ($nb_lignes = 1; $nb_lignes <= $_POST['lien']; $nb_lignes++)
{
	$table = $_POST['lien' . $nb_lignes . ''];
	$id2 = $_POST['id' . $nb_lignes . ''];
	$req_link = $bdd->prepare("INSERT INTO ".$table." (id_article_presse, id2) VALUES(:id_article_presse, :id2)") or die(print_r($bdd->errorInfo(), true));
	$req_link->execute(array('id_article_presse' => $_GET['id'], 'id2' => $id2)) or die(print_r($bdd->errorInfo(), true));
	$req_link->closeCursor();
}
?>


Le code fonctionne mais ca ne me plait pas de laisser la variable table directement dans la requête. Le problème c'est que si je remplace ".$table." par :table et que j'ajoute 'table' => $table à l'execute, ca ne marche pas...

J'ai aussi essayer de rajouter la ligne $table = mysql_real_escape_string($table); mais dans ce cas mon code ne fonctionne plus non plus...

Comment dois-je faire pour sécuriser cette variable ?


Cette discussion est classée dans : sql, requête, post, article, id2


Répondre à ce message

Sujets en rapport avec ce message

requête sql [ par yeble ] je débute en base de données, j'essaie de reproduire votre exemple de site marchand pour comprendre le fonctionnement.j'ai crée 2 tables (articles, ma php/sql [ par marocmarocmaroc ] Salut j'ai deux tables article(designation et code_article) artciel_magasin(qte_stockee).je veux modifier ces champs dans un jointures en sql(sacha petit probleme facile à résoudre [ par minibenji ] Bonjour,j'ai confectioné cette petite shoutbox, mais lors de l'affichage des messages, les saut de ligne se transformes en simple espaces... voici u $_POST et Boucle [ par CrazyShooter ] Bonjour, J'aimerai récupérer mes variables $_POST en passant par une boucle, voici mon code : dans le code HTML pour set les noms des inputs: probleme d'identification avec mysql et une page php [ par 1wxcvbn ] Bonjour, je suis entrain de réaliser une identification des utilisateurs et en fait, quand j'essaye de m'identifié, il me dit que le mot de passe est requête SQL comptabilisant le nombre d'entrée [ par oubien73 ] Bonjour, Je bloque sur un petit problème qui doit être relativement simple, mais je n'arrive pas à trouver la solution :/ J'ai une table (T_achats problème php [ par sarrjo ] bonjour ,je veux gérer du matériel en stock voici mes codes:pour cela j'ai créé un fichier entete.php//session_start();?><!DOCTYPE html PUBLIC "-//W3C Requête sur une table dépendant d'une autre requête [ par phil7799 ] Bonjour, j'essaye de faire une requête qui dépend du résultat d'une autre requête mais je n'y parviens pas.Dans une table, "popularite" j'extrais les verification de formulaire [ par lucien1988 ] slt j'ai besoin de vos aides. nous sommes en train de develloper une application et de mon coté je dois faire un formulaire. j'utilise easyphp 1.8 et php SQL (ajout) [ par medhamdi12 ] Bonsoir, SVP je veut réaliser un ajout dans la base avec cette formulaire : "> <span class="St


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,853 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales