Mammouth du PHP |
1967 Messages
02 févr. 2017, 12:04
C'est bien ce que je me disais, tous tes champs telephone par exemple ont le même nom idem pour les autres champs.
Ce qui veut dire qu'au traitement du formulaire, les données sont écrasés les unes après les autres et tu n'a plus que les dernières.
il faut que tu rende unique tous les attributs name par exemple en utilisant un user_id à défaut le username
PS j'avais pas vu que tu utilise des variable php hors des balise php ??
<?php
session_start();
include("./includes/identifiants.php");
?>
<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="" rel="stylesheet" title="Style" />
<title>Base de données adhérents</title>
</head>
<body>
<?php
if (empty($_POST['maj']))
{
$reponse = $db->query('SELECT * FROM partenaires ORDER by username');
?>
<form method="post" action="" enctype="multipart/form-data">
<table class="content" align="center">
<?php
while ($donnees = $reponse->fetch())
{
?> <tr>
<td><?php echo stripslashes($donnees['username']);?></td>
<td><input type="text" name="telephone[<?php echo $donnees['username'];?>]" id="telephone" value="<?php echo stripslashes($donnees['telephone']);?>"</td>
<td><input type="text" name="contact[<?php echo $donnees['username'];?>]" id="contact" value="<?php echo stripslashes($donnees['contact']);?>"</td>
<td><input type="text" name="email[<?php echo $donnees['username'];?>]" id="email" value="<?php echo stripslashes($donnees['email']);?>"</td>
<td><input type="text" name="news[<?php echo $donnees['username'];?>]" id="news" value="<?php echo stripslashes($donnees['news']);?>"</td>
</tr>
<?php
}
$reponse->closeCursor();
?>
</table>
</p>
<input type="submit" value="Mettre à jour" />
<input type="hidden" id="maj" name="maj" value="1" />
<?php }
else {
$query=$db->prepare('UPDATE partenaires SET telephone = :telephone, contact = :contact, email = :email, news=:news WHERE username=:username');
foreach($_POST['telephone'] as $username => $telephone){
$query->bindValue(':telephone',$_POST['telephone'][$username],PDO::PARAM_INT);
$query->bindValue(':contact',$_POST['contact'][$username],PDO::PARAM_INT);
$query->bindValue(':email',$_POST['email'][$username],PDO::PARAM_INT);
$query->bindValue(':news', $_POST['news'][$username],PDO::PARAM_INT);
$query->bindValue(':username',$username,PDO::PARAM_INT);
$query->execute();
}
$query->CloseCursor();
echo'<p>Modification terminée. </br> La base de données a été modifiée avec succès !</p>';
}
?>
</form>
</body>
</html>