Insertion de multiple checbox dans un champ de ma table

Messages postés
458
Date d'inscription
lundi 24 août 2009
Dernière intervention
8 décembre 2018
- - Dernière réponse : jordane45
Messages postés
23628
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2018
- 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"; 
} 

}
?>
Afficher la suite 

Votre réponse

1 réponse

Messages postés
23628
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2018
0
Merci
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

.



Commenter la réponse de jordane45

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.