Множественные выпадающие значения, вставляемые в одну строку не в несколько строк

В этом коде, когда я выбрал несколько значений из раскрывающегося списка, он стоит в одной строке, но мне нравится применять значение в каждой строке, поэтому, пожалуйста, помогите мне. Фактический результат:

id game 1. cricket,football,tennis 

Ожидаемый результат:

 id game 1 cricket 2 football 

код –

  <html> <body> <?php if(isset($_POST['submit'])) { $query=mysql_connect('localhost','root',''); mysql_select_db("freeze",$query); $choice=$_POST['game']; $choice1=implode(',',$choice); mysql_query("insert into tb values('','$choice1')"); } ?> <form method="post" action="multipleselect.php"> Select your favourite game:<br/> <select name="game[]" multiple="multiple"> <option>Football</option> <option>Volleyball</option> <option>Badminton</option> <option>Cricket</option> <option>Cricket1</option> <option>Cricket2</option> <option>Cricket3</option> <option>Cricket34</option> </select> <input type="submit" name="submit"> </form> </body> </html> 

Related of "Множественные выпадающие значения, вставляемые в одну строку не в несколько строк"

Он вставляет их все в 1 строку, потому что вы вставляете свои $_POST['game']

 $choice=$_POST['game']; $choice1=implode(',',$choice); mysql_query("insert into tb values('','$choice1')"); 

Вам нужно зациклиться на каждом значении $_POST['game']

 foreach($_POST['game'] as $choice){ mysql_query("insert into tb values('','$choice')"); } 

обратите внимание: ваш запрос открыт для SQL-инъекции, убедитесь, что вы дезактивируете свои данные перед вставкой в ​​свой db. Кроме того, mysql_* устарели, поэтому вы должны обновить до mysqli или PDOhttp://php.net/manual/en/mysqlinfo.api.choosing.php

Прежде всего, не используйте mysql_* поскольку он устарел, вместо этого используйте mysqli_ или PDO .

теперь, если вам просто нужны значения параметров, сделайте это так

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

таким образом это даст вам 1,2,.... Надеюсь, это то, что вы ищете.

и если вы ищете такой запрос

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

предполагая, что поле id автоматически увеличивается, а затем измените код следующим образом:
html-код

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

PHP-код

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

таким образом, вы могли бы получить

 id game 1 cricket 2 football 

Появляются ли какие-либо сообщения об ошибках? Вставьте следующий код непосредственно перед оператором mysql_query:

 echo "insert into tb values('','$choice1')"; 

что отображается?

 <?php if(isset($_POST['submit'])) { $query=mysql_connect('localhost','root',''); mysql_select_db("freeze",$query); $choice=$_POST['game']; $choice1=implode(',',$choice); foreach($choice1 as $choice) { mysql_query("insert into tb values('','$choice')"); } } ?> 

Вы просто пробуйте этот код, я надеюсь, что он сработает для вас. Если нет, то, пожалуйста, ответьте мне.