插入特定值更改记录

时间:2015-03-03 07:33:24

标签: php mysql arrays loops insert

从下面的代码中,如果它显示10条记录,并且用户更改了代码'或' 数字'第2和第5条记录的值,如何仅在另一个单独的表中插入第2条和第5条记录。但是从我的插入查询中我可以插入所有10条记录。但是我只需要插入两个受影响的记录。请帮忙。

include('DB.php');
$sql="SELECT * FROM customer where customer_name='".$q."' ";
$result = mysql_query($sql);
$num_row = mysql_num_rows($result);
$row_count=1;
if($num_row>0)
{       
echo "<table >
<tr>
<th>S.No</th>
<th>Name</th>
<th>Code</th>
<th>Number</th>
</tr>";

while($row = mysql_fetch_array($result)) {
$c_name=$row['c_name'];
$c_code=$row['c_code'];
$c_number=$row['c_number'];

    echo "<tr>";
    echo "<td> $row_count.</td>";
    echo "<td><input type='text' name='c_name[]' id='c_name' value='$c_name' readonly /></td>";
    echo "<td><input type='text' name='c_code[]' id='c_code' value='$c_code' /></td>";
    echo "<td><input type='text' name='c_number[]' id='c_number' value='$c_number' /></td>";
    echo "</tr>";

    $row_count++;
            } 
echo "</table>";
}

插入

$c_name=$_POST['c_name'];
$c_code=$_POST['c_code'];
$c_number=$_POST['c_number'];

if(isset($c_code))
{                      
for($i=0;$i<count($c_code);$i++)
{
{
$insert=mysql_query("INSERT INTO customer_table2(name,code,number)
VALUES ('$c_name[$i]','$c_code[$i]','$c_number[$i]')");
}
}

1 个答案:

答案 0 :(得分:1)

首先执行SELECT查询,以查看该行是否已在原始表中。如果没有,请将其添加到新表中。

$c_name=$_POST['c_name'];
$c_code=$_POST['c_code'];
$c_number=$_POST['c_number'];

if(isset($c_code))
{                      
    for($i=0;$i<count($c_code);$i++)
    {
        // Prevent SQL injection
        $name = mysql_real_escape_string($c_name[$i]);
        $code = mysql_real_escape_string($c_code[$i]);
        $number = mysql_real_escape_string($c_number[$i]);
        $select = mysql_query("SELECT COUNT(*) AS c FROM customer WHERE name = '$name' AND code = '$code' AND number = '$number'");
        $row = mysql_fetch_assoc($select);
        if ($row['c'] == 0) {
            $insert=mysql_query("INSERT INTO customer_table2(name,code,number)
                                VALUES ('$name','$code','$number')");
        }
    }
}