使用提交按钮在DB中插入数据时出现问题

时间:2013-08-02 10:43:42

标签: php

我定义以下代码以在网站上显示我的产品。我从数据库中获取我的产品详细信息。

当我点击查询提交按钮时,它没有选择相同的ID并将另一个产品ID插入数据库。请参阅以下代码,我使用查询提交按钮

在数据库中发送详细信息

请参阅下面的更新代码,这些是我在点击查询提交按钮时用于插入数据的所有代码

<?php
session_start();
include'database.php';
$userid=$_SESSION['userid'];

$c=mysql_query("select 'productid','productprice' from products order by rand()");
while(list($productid,$productprice)=mysql_fetch_array($c)):
?>
<td align="center">
    <table class="newproducttd" align="center">
    <tr>
        <td class="code" align="center"><?php echo $productid; ?></td>
        <td class="price" align="center"><?php echo $productprice; ?></td>
    </tr>
    <tr>
        <td class="button" align="center"><input type="submit" class="enquiry" name="enquiry" value="ENQUIRY" /></td>
    </tr>    
    </table>
</td><br>
<?php
endwhile;
if($_REQUEST['enquiry'])
{
    mysql_query("insert into orders values('$userid','$productid','$productprice')");
}
?>

2 个答案:

答案 0 :(得分:1)

您的mysql数据库中的表可能具有不同顺序的列。要确保在指定值之前指定插入查询中的列。

答案 1 :(得分:0)

你获得了$ productid的错误值,因为它在 while 循环中分配了它的最后一个值,因为你的插入代码(因此你对它的引用)低于那个循环,您希望在用户点击提交时将产品ID和价格发送到$ _REQUEST可访问的页面,为此您可以使用隐藏的表单字段来存储每个产品的值,并为每个元素添加单独的表单。你的循环。

此外,您还希望将提交代码放在循环之上。

根据此数据的来源,您可能希望在将数据插入数据库之前将其转义,但我没有在此示例中。

<?php
session_start();
include'database.php';
$userid=$_SESSION['userid'];

//check for submission and insert if set
if($_REQUEST['enquiry'])
{
    //use the userid session for userid, and submitted values for productid and productprice
    mysql_query("insert into orders values('$userid,'{$_REQUEST['productid']}','{$_REQUEST['productprice']}')");
}

$c=mysql_query("select 'productid','productprice' from products order by rand()");
while(list($productid,$productprice)=mysql_fetch_array($c)):
?>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
<td align="center">
    <table class="newproducttd" align="center">
    <tr>
        <td class="code" align="center"><?php echo $productid; ?></td>
        <td class="price" align="center"><?php echo $productprice; ?></td>
    </tr>
    <tr>
        <td class="button" align="center"><input type="submit" class="enquiry" name="enquiry" value="ENQUIRY" /></td>
     //hidden form fields to store data to send to page 
     <input type="hidden" name="productid" value="<?php echo $productid;?>">
     <input type="hidden" name="productprice" value="<?php echo $productprice;?>">
    </tr>    
    </table>
  </form>
<?php
endwhile;
?>