Après au moins deux mois de tentatives et de recherche (sur le net) infructueuse, j'aimerais vos conseils.
Je cherche à créer une requete d'ajout à une Base de donnée, qui soit totalement automatisé, afin de le rendre utilisable pour plusieurs formulaires sur plusieurs BDD différentes.
en marquant un "echo" avec les 3 différents cookies, ca m'affiche bien toute la chaîne des 57 valeurs. Mais l'orsque je veut executer le code rien ne se passe sur phpMyAdmin! que faire s'il vous plaît?!!
merci à tous!!!.
<?php
session_start();
error_reporting(E_ALL & ~E_NOTICE);
$baseUtilise = $_SESSION["BDD_A_Utiliser"];
try
{
$bdd = new PDO('mysql:host=localhost; dbname='.$baseUtilise.';charset=utf8', 'root', '***********');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
//--------------------------------------------------------------------------------------------------------------------------------------------------
include("AAA_Variables.php");
$tempo=$_SESSION["denominationDeLaSection"];
$pageCible="valider$tempo";
$atempo=$tempo.'FormSurBDD';
$btempo=$tempo.'EquivalentSurBDD';
// premieres donées de la chaîne.
$atemponum1="$tempo"."FormSurBDD1";
$aa=${"$atemponum1"};
$a="'$aa'";
$d1="da1";
$_COOKIE["$d1"]=$a;//ex.: 'vivace'
$btemponum1=$tempo.'EquivalentSurBDD1';
$bb=${"$btemponum1"};
$b="'$bb'";
$d2="db1";
$_COOKIE["$d2"]=$b;// ex.: 'typeDeCulture'
$intero ='?';
$valNC="VNC1";
$_COOKIE["$valNC"]=$intero;// donne : ?
$nombreMax=57;
//Les données suivantes.
for( $i=2;$i<=$nombreMax;$i++)
{
$ii=$i-1;
$iii=$i-2;
$denoa="$atempo"."$i";
$aa=${"$denoa"};
$a="'$aa'";
$dda="da$ii";
$ca=$_COOKIE["$dda"].', '.$a;
$da="da$i";
$_COOKIE["$da"]=$ca;// pour stocker toute la chaîne. ex. : 'Vivace', 'Vi.', 'Coreopsis', '040', ...
unset ($_COOKIE["da$iii"]);// efface les données précédantes (elle ne sont plus utiles).
$denob = "$btempo"."$i";
$bb=${"$denob"};
$b="'$bb'";
$ddb="db$ii";
$cb=$_COOKIE["$ddb"].', '.$b;
$db="db$i";
$_COOKIE["$db"]=$cb;// pour stocker toute la chaîne. ex. : 'typeDeCulture', 'codeCulture', 'Genre', 'codeGenre', ...
unset ($_COOKIE["db$iii"]);// efface les données précédantes (elle ne sont plus utiles).
$VaNC="VNC$ii";
$cc=$_COOKIE["$VaNC"].', '.$intero;
$CVNC="VNC$i";
$_COOKIE["$CVNC"]=$cc; // donne : ?, ?, ?, ?, ...
unset ($_COOKIE["VNC$iii"]);// efface les données précédantes (elle ne sont plus utiles).
}
if(isset($_POST["$pageCible"]))//Si on a appuyé sur le bouton "submit" du formulaire.
{
$listeLignesBDD= $_COOKIE["db$nombreMax"];
$listeCookiesFormulaire = $_COOKIE["da$nombreMax"];
$listePointsDInterrogation = $_COOKIE["VNC$nombreMax"];
$tableChoisie = $_SESSION["table_A_Utiliser"];
$ajout = $bdd->prepare('INSERT INTO \''.$tableChoisie.'\' ('.$listeLignesBDD.')VALUES('.$listePointsDInterrogation.')');
$ajout->execute(array('.$listeCookiesFormulaire.'));
}
echo"<script>location.href = history.back(-1);</script>";
?>
j'ai modifié les quotes pour le nom de la table, ainsi est-ce la bonne écriture? :
- ... INSERT INTO '.$tableChoisie.' ('.$listeLignesBDD.') ...
Je vait te parraitre un peu stupide peu etre, mais je sait pas ce que veut dire "binder une valeur"!! ça veut dire quoi s'il te plaît.
le variables intermédiaires servent a créer les élements de la boucle, qui seront ensuite utiliser pour incorporer dans la requete. J'ai créer les "name", "id" et variable de mon ""site"" sous forme de concatenation de plusieurs mot, exemple :
$tracabiliteGrainesJPTypeCultureTexte (pour codifier le : type de cuture de la plante)
$tracabiliteGrainesJPGenreTexte (pour codifier le : genre de la plante)
$tracabiliteGrainesJPEspeceTexte (pour codifier le : l'espece de la plante)
...
$miseEnCultureCoreopsis_grandifloraXHybrida01256514 (pour codifier la mise en culture du Coreopsis grandiflora XHybrida, qui à comme code d'aquisition : 01256514 )
...
En activant les erreur pdo mysql, il ne me renvoie que des( Notice: Undefined index: ), qui sont des case vide sur le formulaire,est-ce ça qui coince l'execution de la requete? (la clef primaire de ma table, ne fait pas partie des cases vide la clef primaire est renseigné sur le formulaire)
réussi! ...enfin je croit, je l'ai tester pour une référence, et ça à l'air de fonctionner. Au lieu de tout insérer dans la BDD en un coup, j’insère le code de traçabilité seul (c'est la clef primaire de la BDD), puis je fait un Update pour insérer le reste.
C'est difficile de coder quand on a peu de connaissance dans ce domaine!!!
dite-moi ce que vous en penser, puis je baliserait ce sujet comme résolu.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
julp.fr ~ PHP < 8.0.0 : activer les erreurs PDO/SQL ~ PHP < 8.1.0 : activer les erreurs mysqli