我定义以下代码以在网站上显示我的产品。我从数据库中获取我的产品详细信息。
当我点击查询提交按钮时,它没有选择相同的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')");
}
?>
答案 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;
?>