J'ai une fonction de chat de groupe sur mon site et les gens peuvent ajouter des amis en sélectionnant des cases à cocher HTML, de sorte que plusieurs peuvent être ajoutés en un seul point. Cependant, lorsque mon script PHP insère les données dans la base de données MySQL, seule la dernière valeur est ajoutée. Par exemple, si l'utilisateur sélectionne 3 amis, PHP sépare leurs identifiants par des virgules (car ils seront stockés sous la forme d'un tableau dans la base de données) ; cela s'afficherait donc comme ,1,2,3. Cependant, lorsque j'insère dans MySQL, seul le ",3" est soumis.
Code PHP pour assembler les données d'une case à cocher HTML :
$invite = $_POST['invite'];
if(empty($invite))
{
//echo("You didn't select any friends.");
}
else
{
$N = count($invite);
//echo("You selected $N friends(s): ");
for($i=0; $i < $N; $i++)
{
$userinput = ("," . $invite[$i]);
}
}
Requête MySQL :
$sql = "INSERT INTO group_chat (title, created_date, last_modified, created_by, user_array) VALUES ('$title', now(), now(), '$logOptions_id', '$logOptions_id$userinput')";
$logOptions_id contient l'ID de l'utilisateur actuel.
J'ai déjà extrait la variable $userinput et elle apparaît comme elle devrait l'être : ,1,2,3 (la virgule au début sépare l'ID de l'utilisateur actuel lors de l'ajout à MySQL.