PHP和复选框复选框进入表格


PHP and Checkboxes check ones go to table

我有一个这样的表:

$query = "select * from pharmacy";
$result = mysql_query($query);
$num = mysql_num_rows($result);
$num1 = mysql_num_fields($result);
if($num>0)
{
    echo "<table border=2>";
    for($i=0;$i<$num;$i++)
    {
        $row=mysql_fetch_row($result);
        echo "<tr>";
        echo"<td><input type='Checkbox' name='p$i'  value='yes' unchecked /></td>";
        echo"<td>$row[0]</td>";
        echo"</tr>";
    }

我想在Mysql的另一个表中插入选中的复选框。我如何插入每个复选框的文本?

首先,您必须更改此HTML,使复选框成为数组

$query = "select * from pharmacy";
$result = mysql_query($query);
$num = mysql_num_rows($result);
$num1 = mysql_num_fields($result);
if($num>0)
{
    echo "<table border=2>";
    for($i=0;$i<$num;$i++)
    {
        $row=mysql_fetch_row($result);
        echo "<tr>";
        echo"<td><input type='Checkbox' name='pi[$i]' /></td>";
        echo"<td>$row[0]</td>";
        echo"</tr>";
    }

然后在动作页面中

    foreach($_POST['pi'] as $key=>$value)
    {
    if($value=="on")
    {
    //DO THE INSERT CODE HERE
// the $key is the $i counter in the HTML
// the $value is whether the user selected it no in this case its just on/off
    }
    }

我建议使用POST/GET数组,如下所示:

<input type='Checkbox' name='p[]'  value='$i' unchecked />

提交表单后,您将在请求参数(POST/GET)的p变量中得到一组值。

从现在开始,从原始表中选择这些ID并将数据插入到新表中是非常容易的。

它看起来是这样的:

INSERT INTO `new_table` (firsT_column, second_column, third_column)
SELECT firsT_column, second_column, third_column
FROM `old_table`
WHERE id IN (<IDS>)

自然地,<IDS>标签应该被之前的p数组的内爆字符串替换。

我认为您的整个方法都是错误的。最好使用药房主键并将其插入您的另一张桌子。我想在另一张表中,你保存了用户的身份证和所有与他有关的药物。

以下是我建议的完整示例:

list_drugs.php

$query = "select * from pharmacy";
$result = mysql_query($query);
$num = mysql_num_rows($result);
if($num>0) {
    echo '<table border="2">';
    while($row=mysql_fetch_array($result) {
        echo '<tr>';
        echo '<td><input type="checkbox" name="drugid_'.$row["PRIMARY_KEY_ID"].'" value="1" unchecked /></td>';
        echo '<td>$row[0]</td>';
        echo'</tr>';
    }
    echo '</table>';
}

do_update.php

<?php
foreach($_POST AS $k=>$x) {
    if(!preg_match("/[^drugid_*]/i", $k)) {
            if($x=="1") {
                $getOnlyTheDrugID=str_replace('drugid_','',$k);
                mysql_query('INSERT INTO otherTable SET columnName='.($drugid_+0).'');
            }
    }
}

您需要为所有复选框指定相同的名称。类似的东西

<input type="checkbox" name="drugs[]" value="name of drug" />

然后在处理脚本的脚本中

for($i=0;$i<count($_POST['drugs']);$i++) {
    $query = "INSERT INTO table (ID, Drugname) VALUES ('', '$_POST['drugs'][$i]')";
}

您应该知道如何在每次

时发送该查询