【问题标题】:copying value from one table to another table using dropdwon list using sql and php使用 sql 和 php 使用下拉列表将值从一个表复制到另一个表
【发布时间】:2016-05-19 00:32:37
【问题描述】:

我有 2 个表“城市”和“客户”与同一行“城市名称”,我希望客户从下拉列表中选择一个城市,从“城市”获取其值并将他的城市选择存储在“客户”

我在“客户”处得到的是一排 0 而不是城市名称,这是我的代码:

$query_2 = "SELECT city_name FROM cities";
   $result_2 = mysql_query($query_2) or die("Query Failed : ".mysql_error());
   $i_2 = 0;
       while($rows_2 = mysql_fetch_array($result_2))
            {
              $city_name[$i_2] = $rows_2['city_name'];
              $i_2++;
            }
    $total_elmt_2 = count($city_name);

^ 在这里创建列表

if(isset($_POST['submit']))
      {

        $city_name = $_POST['city_name'];

      {

^这是发布价值

mysql_query("INSERT INTO `customers`( `city_name`)"
        ." VALUES ('$city_name')",$conn)

^这是我的查询

<label>city <small>(required)</small></label>
            <select id="city_name" name="city_name">
                              <option>Select</option>
                                    <?php 
                             for($j=0;$j<$total_elmt_2;$j++)
                                   {
                                ?><option><?php 
                                  echo $city_name[$j];
                                    ?></option><?php
                                           }
                                               ?>
                                       </select>

^这是客户选择所在城市的下拉列表

我希望能找到人告诉我这段代码哪里出错了:(

【问题讨论】:

  • 您对 POST 参数和从 SQL 获取的数组使用相同的变量 $city_name
  • var_dump($_POST); 显示什么?
  • 不要使用 PHP 已弃用的 mysql_ API
  • 对不起,我不知道如何使用 var_dump($_POST);
  • 你只要把它放在脚本里,它就会出现在表单的结果页面上。

标签: php mysql drop-down-menu


【解决方案1】:

customers 表的city_name 列的数据类型是否设置为varchartext 或与字符串相关的内容?

您在执行查询后忘记了分号 (;):

mysql_query("INSERT INTO `customers`( `city_name`)"
    ." VALUES ('$city_name')", $conn);
                                     ^

声明$city_name 变量后还有一个左括号({)?将其替换为右括号 (})。

来自customers 表的某些数据是否可能有' 的机会?在将数据插入数据库之前使用*_real_escape_string

$city_name = mysql_real_escape_string($_POST["city_name"]);

使用mysqli_* 扩展而不是deprecated mysql_* 扩展。

【讨论】:

  • 如果选项没有值,则默认为内容。
  • 是的,非常感谢!它在我的数据库中的数据类型错误,我不会注意到
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-17
  • 2020-11-25
  • 2020-11-03
  • 2014-10-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多