Mysql
 sql >> Base de données >  >> RDS >> Mysql

Plusieurs valeurs de liste déroulante insérées dans une seule ligne et non dans plusieurs lignes

Tout d'abord, veuillez ne pas utiliser mysql_* comme il est obsolète, utilisez mysqli_ ou PDO à la place.

maintenant, si vous voulez juste les valeurs des options, faites-le comme ceci

<select name="game[]" multiple="multiple">
      <option value="1">Football</option>
      <option value="2">Volleyball</option>
      ...
</select>

de cette façon, cela vous donnera 1,2,.... . J'espère que c'est ce que vous cherchez.

et si vous recherchez une requête comme celle-ci

INSERT INTO tb (`game`) VALUES ('Football'),('Volleyball')

en supposant que id le champ est auto-incrémenté, puis modifiez le code comme suit :
code html

<select name="game[]" multiple="multiple">
  <option>Football</option>
  <option>Volleyball</option>
  ...
</select>

code php

$choice=$_POST['game'];   
$sql = "INSERT INTO tb (`game`) VALUES ";
$sqlValues= null;
foreach($choice as $ch) {
    $sqlValues .= "('$ch')," ;                     
}
$sql.=rtrim($sqlValues, ",");                      
echo $sql;

de cette façon, vous pourriez obtenir

id         game
1          cricket
2          football