2013-07-24 88 views
0

不介意安全問題,這只是本地測試,但是當我點擊更新按鈕時,沒有任何更改會通過頁面或查詢進行,並且我沒有發生任何錯誤。 ?更新不在數據庫中工作

<?php 

$link = mysqli_connect("localhost", "root", "", "test") or die("could not connect"); 

if (isset($_POST['update'])) { 

$updateQuery = (" UPDATE `test1` SET f_name = '$_POST[f_name]', l_name='$_POST[l_name]', email='$_POST[email]' WHERE id='$_POST[id]'"); 
mysqli_query($link, $updateQuery); 


}; 


$query = ("SELECT * FROM `test1`"); 
$result = mysqli_query($link, $query); 

echo "<table border=1 
<tr> 
<th>Firstname</th> 
<th>Lastname</th> 
<th>Email</th> 
</tr>"; 

while($row = mysqli_fetch_array($result)) { 
echo "<form method=post action=update.php>"; 
echo "<tr>"; 
echo "<td>" . "<input type=text name=f_name value=" . $row['f_name'] . " </td>"; 
echo "<td>" . "<input type=text name=l_name value=" . $row['l_name'] . " </td>"; 
echo "<td>" . "<input type=text name=email value=" . $row['email'] . " </td>"; 
echo "<td>" . "<input type=hidden name=id value=" . $row['id'] . " </td>"; 
echo "<td>" . "<input type=submit name=submit value=update" . " </td>"; 
echo "</tr>"; 
} 

>

+0

你有錯誤? – Pitchinnate

+0

您正在檢查是否設置了$ _POST ['update'],但輸入字段在哪裏? – Benz

+0

@Pitchinnate沒有錯誤,它只是恢復到已經寫在數據庫中的內容 – Cesarg219

回答

0

試試這個:

$updateQuery = ("UPDATE `test1` SET f_name = '{$_POST['f_name']}', l_name='{$_POST['l_name']}', email='{$_POST['email']}' WHERE id='{$_POST['id']}'"); 

你也可以嘗試呼應你的if (isset($_POST['update'])) {裏面的東西,以確保它是測試真實。

這裏是你的問題:

if (isset($_POST['submit']) && $_POST['submit'] == 'update') { 

提交按鈕的名稱提交不更新,該值是更新。

+0

當我嘗試這樣做時,它只允許我編輯表格中的最後一行沒有其他行允許我更改它沒有通過的信息 – Cesarg219

+0

這是因爲您的循環內沒有「」 。 – Pitchinnate

+0

您的''也沒有關閉它們'>'。 – Pitchinnate

0

表單變更爲

while($row = mysqli_fetch_array($result)) { 
    echo "<form method=post action=update.php>"; 
    echo "<input type=hidden name=update>"; 
    echo "<tr>"; 
    echo "<td>" . "<input type=text name=f_name value=" . $row['f_name'] . " </td>"; 
    echo "<td>" . "<input type=text name=l_name value=" . $row['l_name'] . " </td>"; 
    echo "<td>" . "<input type=text name=email value=" . $row['email'] . " </td>"; 
    echo "<td>" . "<input type=hidden name=id value=" . $row['id'] . " </td>"; 
    echo "<td>" . "<input type=submit name=submit value=update" . " </td>"; 
    echo "</tr>"; 
} 
+0

只有經過的數據庫更改是最後一行所有其他的沒有任何反應 – Cesarg219

+0

你有更新查詢的工作,這取決於你想實現什麼? – Vineet1982

+0

的想法是讓所有的行都有從數據庫中拉出來的信息,並允許我寫他們併發送我寫入數據庫的所以當我刷新頁面時,我可以看到我的更改經過了 – Cesarg219

0

POST鍵應該用引號括起來。試試這個:。

$ updateQuery = 「UPDATE test1的SET f_name =」 $ _ POST [ 'f_name'] 「l_name =」 $ _ POST [ 'l_name'] 「電子郵件=」 $ _ POST ['email']。「WHERE id =」。$ _ POST ['id'];
+0

沒有工作我意外的T_VARRIABLE行7 – Cesarg219