我有一个这样的表:
$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]')";
}
您应该知道如何在每次