Quelques soucis avec PDO insertion, besoin d’un coup de pouce…
Voici mon fichier myparam.inc.php avec les mots de passe.
<?php
define("MYHOST","sql…");
define("MYUSER","ici l’user");
define("MYPASS","ici le mot de passe");
?>
Le fichier connexpdo.inc.php
<?php
function connexpdo($base,$param)
{
include_once($param.".inc.php");
$dsn="mysql:host=".MYHOST.";dbname=".$base;
$user=MYUSER;
$pass=MYPASS;
try
{
$idcom = new PDO($dsn,$user,$pass);
return $idcom;
}
catch(PDOException $except)
{
echo"Echec de la connexion",$except->getMessage();
return FALSE;
exit();
}
}
?>
En début de mon fichier j’ai inséré ce bout de code
< ?php
include_once("connexpdo.inc.php");
?>
J’arrive à afficher ma table avec cet exemple…
<?php
if($idcom=connexpdo("mabdd","myparam"))
{
$trier = isset($_POST['tri']) ? mysql_real_escape_string($_POST['tri']):'type_article';
$requete="SELECT * FROM table_articles ORDER BY table_articles.$trier";
$result=$idcom->query($requete);
if(!$result)
{
$mes_erreur=$idcom->errorInfo();
echo "Lecture impossible, code", $idcom->errorCode(),$mes_erreur[2];
}
else
{
echo <<<html
<form action="" method="post" name="trier" id="trier">
<p style="text-align:center">
<select name="tri" onchange="submit(this.form)">
<option value="">Classer la table par...</option>
<option value="id">Ordre ID</option>
<option value="designation">Ordre de désignation</option>
<option value="type_article">Sa désignation</option>
<option value="prix_ttc">Prix TTC</option>
</select>
</p>
</form>
<br/>
html;
echo "<table cellspacing=\"1\" border=\"1\" style=\"width:100%;\">";
echo "<tr style=\"text-align:center\"><th>N° ID</th> <th>N° Traçabilité</th> <th>Catégorie</th> <th>Sous-Catégorie</th><th>Désignation</th><th>Prix HT</th><th>Prix TTC</th><th>Date de Mise en vente</th><th>Résumé des articles</th><th>Type</th></tr>";
echo"<tr></tr>";
while($ligne=$result->fetch(PDO::FETCH_NUM))
{
echo "<tr>";
foreach($ligne as $valeur)
{
echo "<td style=\"background-color:white\"> $valeur </td>";
}
echo "</tr>";
}
echo "</table>";
}
$result->closeCursor();
$idcom=null;
}
?>
L’affichage de la table se passe sans problème, Et le pire, aucune erreur ne s’affiche à l’écran…en fait, rien ne se passe…
Voici la partie html du form.
<form action= "<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="application/x-www-form-urlencoded">
<fieldset>
<legend><b> Ajouter une ligne complète</b></legend>
<table>
<tr>
<td></td><td>N° Traçabilité</td><td></td><td></td><td>Désignation</td><td>Prix
HT</td><td>Prix TTC</td>
<td>Date de mise en vente</td><td>Résumé de l´article</td><td>Type</td>
</tr>
<tr>
<td><input type="hidden" name="id" value=""/></td><td><input type="text" name="tracabilite"
value=""/></td><td><input type="hidden" name="categorie" value="1"/></td><td><input
type="hidden" name="sous_categorie" value="1"/></td><td><input type="text" name="designation"
value=""/></td><td><input type="text" name="prix_ht" value=""/></td><td><input
type="text" name="prix_ttc" value=""/></td><td><input type="text" name="mev"
value=""/></td><td><input type="text" name="resume" value=""/></td><td><select
name="type"><option value=""></option><option value="1">Boeuf</option><option
value="2">Veau</option></select></td>
</tr>
</table>
<table>
<tr>
<td><input type="reset" value=" Effacer "/></td>
<td><input type="submit" value=" Ajouter " name="bouton_ajouter"/></td>
</tr>
</table>
</fieldset>
</form>
Et la partie php en dessous du form…
<?php
$id_ajouter=connexpdo('mabdd','myparam');
if (isset($_POST["bouton_ajouter"]))
{
if(!empty($_POST['tracabilite'])&& !empty($_POST['categorie'])&& !empty($_POST['sous_categorie'])&& !empty($_POST['designation'])&& !empty($_POST['prix_ht'])&& !empty($_POST['prix_ttc'])&& !empty($_POST['mev'])&& !empty($_POST['resume'])&& !empty($_POST['type']))
{
$ref_animal = $id_ajouter->quote($_POST['tracabilite']);
$categorie = $id_ajouter->quote($_POST['categorie']);
$sous_categorie = $id_ajouter->quote($_POST['sous_categorie']);
$type_article = $id_ajouter->quote($_POST['designation']);
$prix_ht = $id_ajouter->quote($_POST['prix_ht']);
$prix_ttc = $id_ajouter->quote($_POST['prix_ttc']);
$date_MEV = $id_ajouter->quote($_POST['mev']);
$resume = $id_ajouter->quote($_POST['resume']);
$designation = $id_ajouter->quote($_POST['type']);
//Requète SQL
$requete = $id_ajouter->exec("INSERT INTO table_articles (ref_animal, categorie, sous_categorie, type_article, prix_ht, prix_ttc, date_MEV, resume, designation) VALUES($ref_animal,$categorie,$sous_categorie,$type_article,$prix_ht,$prix_ttc,$date_MEV,$resume,$designation)");
$requete=$id_ajouter->query($requete);
}
}
$id_ajouter=null;
?>
Ma requète ne fonctionne pas, c’est le néant…Merci d’avance pour votre intervention…
Cordialement,
Bruno