Erreur sur un programme en php
Résolu
kinder77
Messages postés
142
Statut
Membre
-
jojo673 Messages postés 235 Statut Membre -
jojo673 Messages postés 235 Statut Membre -
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>
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>
A voir également:
- Erreur sur un programme en php
- Mettre en veille un programme - Guide
- Programme demarrage windows - Guide
- Desinstaller un programme sur windows - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
- Forcer la fermeture d'un programme - Guide
7 réponses
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.
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.
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!
On ne peut déplacer la table sur elle-même!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question