php
2017-04-18 138 views 0 likes 
0

我想在數據庫中更新我的值時出現問題。沒有顯示錯誤。即使值未更新,頁面也會按照指示重新定向。 這是用戶輸入的代碼..使用PHP更新數據庫值

echo "<td bgcolor='#FFFFFF'><input id='id' name='pro_id[]' type='text'></td>"; 
    echo "<td bgcolor='#FFFFFF'><input id='name' name='pro_name[]' type='text'></td>"; 
    echo "<td bgcolor=‘#FFFFFF’><input id='quan' name='pro_quan[]' type='text'></td>"; 

下面是我的插入值的代碼..

$query = "INSERT INTO product (username, pro_id, pro_name, pro_quan) VALUES "; 
for ($i = 0; $i < count($_POST['pro_id']); $i++) { 
$query .= " ('{$username}', '{$id[$i]}', '{$name[$i]}', '{$quan[$i]}'),"; 
} 
$query = substr($query, 0, -1); 

$result = mysqli_query($con, $query) or die(mysqli_error($con)); 

插入代碼做工精細。該值被插入到數據庫中。以下是我的更新代碼。

$sql = "SELECT * FROM product where username = '$username'"; 
foreach($_SESSION['product'] as $item) 
{ 
$id = $item['pro_id']; 
$name = $item['pro_name']; 
$quan = $item['pro_quan']; 
$sold = $item['pro_sold']; 
$sql="UPDATE product SET pro_id='".$id."', pro_name='".$name."', pro_quan='".$quan."', pro_sold='".$sold."' WHERE username = '".$username."'"; 
} 

$results=mysqli_query($con, $sql); 

該值無法更新。我不知道去了wrong.So,任何幫助將是appreciated.Thanks

+1

其中是更新查詢中的WHERE子句。 – webpic

+1

對不起,我錯過了 – June

+0

爲什麼輸入標籤中的名稱有括號? –

回答

0

感謝球員們的所有幫助。我通過使用for循環來更改我的更新代碼。 下面是解決方案..

for ($i = 0; $i < count($_POST['pro_id']); $i++) { 
$sql="UPDATE product SET pro_name='".$name[$i]."', pro_quan=".$quan[$i].", pro_sold=".$sold[$i]." WHERE pro_id=".$id[$i].""; 
$results=mysqli_query($con, $sql); 
} 
+0

如果您已設法解決您的問題,請將答案標記爲已接受。 – Pyromonk

1

需要把SQL執行中foreac,如下...

$sql = "SELECT * FROM product where username = '$username'"; 
$results=mysqli_query($con, $sql); 
while($row = mysqli_fetch_assoc($results)){ 
$id = $row['pro_id']; 
$name = $row['pro_name']; 
$quan = $row['pro_quan']; 
$sold = $row['pro_sold']; 
$sql="UPDATE product SET pro_id='".$id."', pro_name='".$name."', pro_quan='".$quan."', pro_sold='".$sold."' WHERE pro_id = '".$id."' "; 
mysqli_query($con, $sql); 
} 
+0

我試過了,但值仍然不能更新 – June

+0

注意:未定義的索引:F:\ xampp \ htdocs中的產品\第15行上的新文件夾\ upProduct.php 警告:提供的參數無效對於F:\ xampp \ htdocs \新建文件夾\ upProduct.php在第15行的foreach()在第15行 注意:未定義的變量:結果在第27行的F:\ xampp \ htdocs \ New文件夾\ upProduct.php – June

+0

仍然不工作,它直接將所有的值更新爲0. – June

1

$id$quan在您更新查詢是單引號之間。我對你的數據庫結構一無所知,但有些東西告訴我這些值是數字而不是字符串。以下是更新行:

$sql="UPDATE product SET pro_id=".$id.", pro_name='".$name."', pro_quan=".$quan.", pro_sold='".$sold."'";

您可能必須卸下週圍$sold報價爲好。

+0

我改變了它,但仍然沒有工作。任何想法? – June

+0

@June,我不太瞭解你的代碼。你爲循環的每次迭代賦值'$ sql',爲什麼?你試圖用你的代碼實現什麼,以及你試圖存儲什麼類型的值? '$ _SESSION ['product']'是一個數組嗎?這些是我的一些問題。 – Pyromonk

+0

好的,現在我必須在數據庫中插入幾個產品。所以對於產品,我需要更新產品的價值,比如產品數量,產品銷售量等等,因爲用戶可能輸入錯誤。 – June

1

首先檢查是否是主鍵的pro_id。 如果它是主鍵而不是以這種方式寫查詢。

$sql="UPDATE product SET pro_name='".$name."', pro_quan='".$quan."', pro_sold='".$sold."' WHERE pro_id = '".$id."' "; 

因爲如果列的唯一性是干擾,主鍵會生成錯誤。

相關問題