Téléchargement
illégal
Posez votre question Signaler

Erreur sur un programme en php [Résolu]

kinder77 116Messages postés 12 octobre 2008Date d'inscription 12 avril 2012Dernière intervention - Dernière réponse le 21 sept. 2011 à 00:51
Bonjour,
voila j'essaye depuis un moment de realiser un programme qui m'affiche mes commentaires en php j'en peut plus mais j'ai envie de finir et pas faire de cauchemar
Bon apres avoir cree ma base de donne et mes tables voici mon code qui m'affiche ceci:
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '0' for key 'PRIMARY'' in C:\wamp\www\commentaires\index.php on line 29
( ! ) PDOException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '0' for key 'PRIMARY' in C:\wamp\www\commentaires\index.php on line 29
te voici mon code:
<?php
require ('connect.php');
if(!empty($_POST))
{
$pseudo = strip_tags($_POST['pseudo']);
$commentaire = strip_tags($_POST['commentaire']);
$valid = true;
if (empty($pseudo))
{
$valid = false;
$erreurpseudo='Indiquez un pseudo';
}
if (empty($commentaire))
{
$valid = false;
$erreurcommentaire='Indiquez un commentaire';
}
if (!empty($commentaire) && strlen($commentaire)<10)
{
$valid = false;
$erreurcommentaire='Commentaire trop court';
}
if ($valid)
{
$req = $bdd->prepare('INSERT INTO commentaires (pseudo,contenu) VALUES (:pseudo,:commentaire)');
$req->execute(array(':pseudo'=>$pseudo, ':commentaire'=>$commentaire));
$req->closeCursor();
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="style.css" />
<title>Document sans nom</title>
</head>
<body>
<div id="content">
<h1>Essai </h1>
<p>
accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?"
</p>
<div id="commentaires">
<?php
$req = $bdd->prepare('SELECT*FROM commentaires ORDER BY id DESC');
$req ->execute();
while ($data = $req->fetch()):?>
<div class="comm">
<h4><?php echo $data ['pseudo'];?> </h4>
<p><?php echo nl2br($data['contenu']);?> </p>
</div>
<?php
endwhile;
?>
</div>
<form action="index.php" method="post">
<fieldset>
<label for="pseudo">Pseudo:</label>
<input type="text" name="pseudo" value="<?php if(isset($pseudo)) echo $pseudo;?>" />
<span class="error"><?php if(isset($erreurpseudo)) echo $erreurpseudo;?></span>
<label for="commentaire">Commentaire: </label>
<textarea name="commentaire"><?php if(isset($commentaire)) echo $commentaire;?></textarea>
<span class="error"><?php if(isset($erreurcommentaire)) echo $erreurcommentaire;?></span>
<input type="submit" value="Envoyer" />
</fieldset>
</form>
</div>
</body>
Lire la suite 

Erreur sur un programme en php »

9 réponses
Réponse
+0
moins plus
C'est un problème dans la base de données. Une ligne est déjà existante avec comme id le numéro 0 (qui est la clé primaire). Lors de l'ajout d'une nouvelle ligne, il essaye de rajouter l'id 0, qui existe déjà et comme une clé primaire doit être unique il ne veut pas !
Pour corriger ça il faut mettre l'id de la table (la clé primaire) en autoincrement pour que les id soient différents lors d'un nouvel ajout.
Ajouter un commentaire
Réponse
+0
moins plus
j'essaye je te dit
Ajouter un commentaire
Réponse
+0
moins plus
je ne suis pas tres en mysql g essayé mais voila ce qu'il m'affiche:
On ne peut déplacer la table sur elle-même!
Ajouter un commentaire
Réponse
+0
moins plus
C'est pas la bonne m'anip alors ^^. Il faut modifier la table 'commentaires', onglet 'Structure', modifier la première ligne (celle qui est souligné) et coché la case 'AUTO_INCREMENT'
Ajouter un commentaire
Réponse
+0
moins plus
j'essaye jojo merci de soutenir
Ajouter un commentaire
Réponse
+0
moins plus
j'ai fait ce que tu m'a dit mais sa n'a rien changer je resume:
-dans ma table contact
-j'ai cliquer sur le crayon
-ensuite en bas j'ai cocher la case Auto increment
jojo673- 21 sept. 2011 à 00:45
La table commentaires
Ajouter un commentaire
Réponse
+0
moins plus
Alléluyia t'est mon sauveur mon marchand de sable 1000X merci jojo673
jojo673- 21 sept. 2011 à 00:51
;)
Ajouter un commentaire
Ce document intitulé « erreur sur un programme en php » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?