3 votes

PHP HTML checkbox soumettant uniquement la dernière valeur problème MySQL

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.

5voto

Chibuzo Points 3176

Vous écrasez les valeurs dans la boucle avec cette ligne

$userinput = ("," . $invite[$i]);

Changez-le en ceci

$userinput .= ("," . $invite[$i]);

N'oubliez pas d'initialiser la variable $userinput avant de l'annexer pour éviter undefined variable avertissement.

0voto

dkkumargoyal Points 444

Vous pouvez créer la chaîne d'identification séparée par des virgules en utilisant l'implode

$userinput = implode(',', $invite); // output as 1,2,3

Si vous voulez y ajouter l'identifiant de l'utilisateur actuel

$userinput = $logOptions_id.','.implode(',', $invite);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X