0
<form action="4.php" method="POST">
<select name="select2[]" multiple>
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="opel">Opel</option>
  <option value="audi">Audi</option>
</select>
<select name="select[]" multiple>
  <option value="volvo1">Volvo1</option>
  <option value="saab2">Saab2</option>
  <option value="opel3">Opel3</option>
  <option value="audi4">Audi4</option>
</select>
<input type="submit" name="sub" value="submit">
</form>

4.php

<?php
mysql_connect("localhost", "root", "");
$db=mysql_select_db("test");
if(isset($_POST['sub'])) {

$r=$_POST['select2'];
$f=$_POST['select'];


    $val1  = implode("", $r);


    $val2  = implode("", $f);


    $r=mysql_query("insert into test1 (test,test1) values ('$val1','$val2') ");
}


?>

我正在使用 php 语言。我正在使用选择多个并尝试在我的数据库中添加值,但仅在一行中添加所有值

4

2 回答 2

1

尝试implode(",", $r) 代替 implode("", $r)

<?php
mysql_connect("localhost", "root", "");
$db=mysql_select_db("test");
if(isset($_POST['sub'])) {

$r=$_POST['select2'];
$f=$_POST['select'];

    $val1  = implode(",", $r);// to save it as string

    $val2  = implode(",", $f);

    $r=mysql_query("insert into test1 (test,test1) values ('$val1','$val2') ");
}

// and to retrieve data 
explode(",", $result); // to convert it from string to array

?>

于 2013-09-22T18:32:35.650 回答
0

正如@jetawe 所说,你必须用逗号分隔,但我认为他的查询不起作用。我建议你在两个查询中让它保持简单:

   $val1  = implode("', '", $r);  // add quotes
   $val2  = implode("', '", $f);

   $result_1 = mysql_query("insert into test1 (test) values ($val1) ");
   $result_2 = mysql_query("insert into test1 (test1) values ($val2) ");

但我不得不提一下,应该更好地命名变量以避免混淆。努力命名变量以减少代码中的错误。
您还必须使用另一种方式来连接和查询数据库。 不推荐使用 mysql 扩展并将在将来删除:请改用 mysqli 或 PDO

于 2013-09-22T19:18:22.547 回答