0

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

当我单击查询提交按钮时,它没有选择相同的 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')");
}
?>
4

2 回答 2

1

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

于 2013-08-02T10:45:44.643 回答
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;
?>
于 2013-08-02T11:51:34.837 回答