ajout dans bdd avec fonction
Posté : 01 déc. 2013, 13:40
bonjour,
je suis entrain de cree un espace ou j'affiche mes code promo sur mon site et je me heurte a un souci pour l'ajout de ceux ci
j'espère que vous pourrais m'aider
Merci beaucoup a tout ce qui essayerons
mes DEFINE :
c'est la fonction addpromo qui me pose probleme
et voici le formulaire :
et voici le code erreur
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1' in C:\wamp\www\espace-membre\function.php on line 1392 correspond a la ligne $resultat -> execute();
( ! ) PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 in C:\wamp\www\espace-membre\function.php on line 1392
correspond a la ligne $resultat -> execute();
je suis entrain de cree un espace ou j'affiche mes code promo sur mon site et je me heurte a un souci pour l'ajout de ceux ci
j'espère que vous pourrais m'aider
Merci beaucoup a tout ce qui essayerons
mes DEFINE :
// base sql
define('SELECT', 'SELECT ');
define('UPDATE', 'UPDATE ');
define('INSERT', 'INSERT INTO ');
define('DELETE', 'DELETE ');
define('ALL', '*');
//table promo
define('PROMO', ' FROM promo');
define('PROMOZ', 'promo');
define('CPROMOLISTE', ' WHERE id_users=:id ORDER BY date_fin DESC');
ma fonction :// La classe liste Code promo
class Cpromo {
// liste des code promo
// liste a vide
// Dans une boucle
// retourne la liste des codes promo
// Sinon
// retourne vous n'avez aucun message
public static function liste($id) {
$liste = '';
$resultat = Bdd::connectBdd()->prepare(SELECT.ALL.PROMO.CPROMOLISTE);
$resultat -> bindParam(':id', $id, PDO::PARAM_INT, 11);
$resultat -> execute();
while($donnee = $resultat -> fetch(PDO::FETCH_ASSOC)) {
if($donnee['etat'] === '1') {
$image = '<img src="'.URLSITE.'/design/img/on.png" align="absmiddle">';
}
else {
$image = '<img src="'.URLSITE.'/design/img/off.png" align="absmiddle">';
}
$liste .= '<div class="list">
<div class="col1">'.$image.'</div>
<div class="col2">'.$donnee['id'].'</div>
<div class="col3">'.$donnee['code'].'</div>
<div class="col4">'.$donnee['titre'].'</div>
<div class="col5">'.$donnee['date_fin'].'</div>
<div class="col6"><a href=modif_promo.php?idpromo='.$donnee['id'].'>modifier</a></div>
</div>';
}
if(!empty($liste)) {
return $liste;
}
else {
return '<div class="list">Vous n\'avez crée aucun code promotion actuellement</div>';
}
}
// creation du code promo
public static function addpromo($id_users, $pseudo, $url, $code, $titre, $date_fin, $resume, $etat) {
$resultat = Bdd::connectBdd()->prepare(INSERT.PROMOZ);
$resultat -> bindParam(':id_users', $id_users);
$resultat -> bindParam(':pseudo', $pseudo);
$resultat -> bindParam(':url', $url);
$resultat -> bindParam(':code', $code);
$resultat -> bindParam(':titre', $titre);
$resultat -> bindParam(':date_fin', $date_fin);
$resultat -> bindParam(':resume', $resume);
$resultat -> bindParam(':etat', $etat);
$resultat -> execute();
}
} // Fin de la classe liste code promo
La fonction liste marche parfaitement c'est la fonction addpromo qui me pose probleme
et voici le formulaire :
<?php session_start();
include('header.php');
include('menu.php');
echo '<div class="add_cpromo">
<div class="title">ajouter un code promotionnel</div>
<form action="" method="post">';
if(!empty($_POST['add_promo'])) {
extract($_POST);
echo Cpromo::addpromo($id_users, $pseudo, $url, $code, $titre, $date_fin, $resume, $etat);
echo 'votre id est'.$id_users.'';
}
echo '
<input class="input" type="hidden" value="'.Membre::info($_SESSION['id'], 'id').'" name="id_users">
<div class="clear">
<div class="label">pseudo: </div>
<input class="input" type="text" name="pseudo">
</div>
<div class="clear">
<div class="label">url : </div>
<input class="input" type="text" value="ex: http://www.monsite.fr " name="url" >
</div>
<div class="clear">
<div class="label">code promo : </div>
<input class="input" type="text" name="code">
</div>
<div class="clear">
<div class="label">titre</div>
<input class="input" type="text" name="titre">
</div>
<div class="clear">
<div class="label">date de fin </div>
<input class="input" type="text" value="JJ/MM/AAAA " name="date_fin">
</div>
<div class="clear">
<div class="label">resumé: </div>
<textarea name="resume" ROWS=5 COLS=22>
</textarea>
</div>
<input class="input" type="hidden" value="1" name="etat">
<div class="clear">
<input type="submit" value="Valider votre inscription" name="add_promo" class="button">
</div>
</form>
</div>';
include('footer.php');
?>
et voici le code erreur
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1' in C:\wamp\www\espace-membre\function.php on line 1392 correspond a la ligne $resultat -> execute();
( ! ) PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 in C:\wamp\www\espace-membre\function.php on line 1392
correspond a la ligne $resultat -> execute();