【问题标题】:how to catch variable from mysql_fetch_assoc如何从 mysql_fetch_assoc 中捕获变量
【发布时间】:2014-07-11 00:23:11
【问题描述】:

我正在尝试捕获项目的相应 id,同时从选择标签中选择它 然后通过隐藏输入发布它,以便插入到另一个具有项目名称的表中。

换句话说我想插入项目的名称和对应的id:

    <form  action="interface.php" method="post">
    Equipment: <select name="equipment">
    <option value="0">Выберите оборудование</option>
    <?php
    $res = mysql_query('select `equipment_id`,`name`,`ip_adress` from `equipment`');
    while($row = mysql_fetch_assoc($res)){
         do
         {              
     printf("<option>%s</option>",$row['name']);
     $equipment_id = $row['equipment_id'];
    while ($row=mysql_fetch_array($res));
    }
    ?>
    </select> 
    <input type="hidden" name="equipment_id" value="<?php echo $equipment_id;?>" />

Interface.php 处理程序:

    <?php
    include("connect.php");

    $val1 = $_POST['equipment'];
    $val2 = $_POST['equipment_id'];
    $val3 = $_POST['vlan'];
    $val4 = $_POST['vlan_id'];
    $val5 = $_POST['name'];
    $val6 = $_POST['description'];


    mysql_select_db("ADRESSA") or die("Could not select database");

    $result_insert =  mysql_query ("INSERT INTO `ADRESSA`.`interface` (`equipment`, `equipment_id`, `vlan`,`vlan_id`,`name`,`description`) 
    VALUES   ('$val1','$val2','$val3','$val4','$val5','$val6');") 
            or die ("<b>Query failed:</b> " . mysql_error());

    if ($result_insert== 'true') 
    {
    echo "1 record added";
    header('Location: http://192.168.0.1/find/1/show_interface.php');
    }
    else{echo "try again";
    }
    mysql_close();

    ?>

问题在于,这些值仅在开始时才正确插入,而在接下来的查询中,它只是添加了相同的值。

最好的问候!

【问题讨论】:

  • 1.永远不要相信用户输入 2. 你很容易发生 SQL 注入 3. 你正在使用已弃用的 API。所有 3 都可以使用准备好的语句来解决
  • 嗯,这在现阶段不是很重要,我真正关心的是如何使这项工作发挥作用
  • 您的隐藏字段在任何循环之外。只有循环的最后一个值存储在那里。如果您需要存储“选定”选项的值,那么我认为您可能需要一些 javascript 代码。如果你的意思是别的,请澄清。
  • 请说明您的情况
  • 我需要同时插入姓名和身份证,同时从选择标签中选择姓名

标签: php mysql


【解决方案1】:

我建议表单端的输出变成这样:

<select id="selEquipmentId" name="equipment_id">
    <option value="0">Выберите оборудование</option>
    <option value="1">Some Equipment Name (with the ID set in the value attribute)</option>
    <!-- 
    ... more options using the same patern
    -->
</select>

<!-- this hidden input element should contain the equipment name of the selected option -->
<input type="hidden" id="selEquipment" name="equipment" value="Выберите оборудование" />

然后使用一些 javascript 和 JQuery magic 在同一页面上包含以下脚本。如果你还没有,也可以include JQuery

<script>
$('#selEquipmentId').on('change', function() {
    $('#selEquipment').val($('#selEqiupmentId option:selected').text());
});
</script>

最后一个提示:使用一个循环来创建选项。现在,您在 while 循环中使用“do while”循环(据我所知,while 循环只执行一次)。这只会造成混乱。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-16
    • 1970-01-01
    • 2021-09-27
    相关资源
    最近更新 更多