2013-08-02 52 views
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')"); 
} 
?> 
+0

哪裏$用戶標識從何而來,它應該不會(逃走)$ _REQUEST [ '用戶ID'] – JohnnyFaldo

+0

$用戶ID從會話到來。它的工作如下所示: - $ userid爲空時,它會轉到reg.php,否則會轉到 –

+0

您是否檢查到重定向正在工作? – JohnnyFaldo

回答

1

您的mysql數據庫中的表可能具有不同順序的列。爲了確保,請在指定值之前指定插入查詢中的列。

+0

我的列順序是正確的,爲什麼查詢插入數據在db但是不同的ID –

+0

@nikhilgarg即使列中沒有數據也可以插入數據正確的順序。最好在查詢中明確指定列,這樣如果在表中添加額外的列,代碼不會中斷...無論如何,嘗試通過在插入前打印sql語句來調試,以確保正在執行正確的SQL 。如果沒有,你必須弄清楚爲什麼$ userid變量沒有你期望的數據。 – Munim

+0

正如我上面解釋說,約翰尼一切正常,$ userid是正確的,通過查詢插入分貝查詢也是正確的問題是「它插入不同的id」。就像我有4個產品A,B,C,D。當我點擊C的查詢按鈕時,它插入了D的數據。 –

0

對於$ productid,您得到的值不正確,因爲它在您的中指定了它的最後一個值,而循環因爲您的插入代碼(因此引用它)在該循環下方,所以要發送當用戶點擊提交時,可以通過$ _REQUEST訪問該頁面的產品ID和價格,在您的情況下,您可以使用隱藏的表單域來存儲每個產品的值,併爲您的循環中的每個元素使用單獨的表單。

另外你想把你的提交代碼放在你的循環之上。

根據這些數據來自何處,您可能想在將其插入數據庫之前將其轉義,在本例中我沒有這樣做。

<?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; 
?> 
相關問題