Insertion de multiple checbox dans un champ de ma table

msi79 Messages postés 509 Date d'inscription lundi 24 août 2009 Statut Membre Dernière intervention 2 mai 2023 - 3 déc. 2016 à 20:49
jordane45 Messages postés 38136 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 avril 2024 - 4 déc. 2016 à 17:16
Bonjour,
je me suis inspiré d'un tutoriel pour essayer d’insérer les références postées à partir de checbox .les lignes sont insérés sauf les références .
voici un aperçu de ma table:

voici :
mon champ checbox
<input name="menu[]" type="checkbox" value="<?= $row["ref"];  ?>">

Nb: plusieurs champs sont affiché grace à :
while($row = mysql_fetch_assoc($req2)){

et voici le code pour insertion :
<?php
if (isset($_POST["submit"])){
$petathome=$_POST['menu']; 
// Loop through the array of checked box values ... 
$pets=""; 
$flag=0; 
foreach($petathome as $entry){ 
$pets .= $entry."|"; 
$flag=1; 
} 
if($flag==1){ 
$pets=mysql_real_escape_string($pets);
} 

// Insert data into mysql 
$sql="INSERT INTO tmp_ref(id,clef,ref)VALUES('', '$clef', '$petathome')";  
$result=mysql_query($sql); 

// if successfully insert data into database, displays message "Successful". 
if($result){ 
					  $msg = 'Successful'; 
                      echo '<script>alert(\' '.$msg.' \');</script>';
echo "Successful"; 
echo "<BR>"; 
echo "<a href='testpage.html' rel="nofollow noopener noreferrer" target="_blank">Back to main page</a>"; 
} 

else { 
  $msg = 'ERROR'; 
                      echo '<script>alert(\' '.$msg.' \');</script>';
echo "ERROR"; 
} 

}
?>

1 réponse

jordane45 Messages postés 38136 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 avril 2024 344
4 déc. 2016 à 17:16
Bonjour MSI

Depuis le temps que poses des questions sur ce forum... je suis étonné de voir que tu utilises toujours l'ancienne extension mysql (que nous t'avons pourtant déconseillé à plusieurs reprises du fait qu'elle soit considérée comme obsolète)....

Ensuite.. en ce qui concerne ton souci...
tu utilises, pour l'insertion, la variable $petathome
variable qui contient le contenu de $_POST
$petathome=$_POST['menu']; 

Alors que tu, quelques lignes plus bas, créé une variable : $pets
foreach($petathome as $entry){ 
$pets .= $entry."|"; 
$flag=1; 
}


Par contre.. pourquoi ne pas directement sérialiser la variable $petathome ?? ça serait plus simple non ?
$pets = serialize($petathome);

=> http://php.net/manual/fr/function.serialize.php

.



0
Rejoignez-nous