2017-03-05 32 views
2

我試圖顯示錶中的值,並希望修改表單中的值提交。如何顯示錶中的值,修改它們,再次保存它們

這裏是我的代碼:

<?php 
$sql = mysql_query("SELECT * FROM TABLENAME"); 

//Get and store values into new variable 

while ($row = mysql_fetch_array($sql)) { 
    $name[] = $row['name']; 
    $status[] = $row['status']; 

} 

//運行循環,以確定值

for ($i = 0; $i < count($name); $i++) { 
     echo "<tr> "; 
     echo "<td>" . $name[$i] . "</td>"; 
     echo "<td><input name='offer_new_name' size='5' type='text' value='$status[$i]' /></td>"; 

} 
echo '<form action="" method="post">'; 
echo '<input type="submit" value="Save New Values" name="save_new">'; 
echo "</form>"; 

if (isset($_REQUEST['save_new'])) { 
    for ($i = 0; $i < count($name); $i++) { 
     echo "name:$name[$i]<br>"; 
     echo "status:$status[$i]"; 
    } 
} 

當我點擊保存新值,它會顯示舊值,,取從數據庫。 請指導我如何保存

echo "<td><input name='new_status' size='5' type='text' value='$status[$i]' /></td>"; 

到新的變量每個名稱,並重新保存到同一個表。

請指導我,如果我的方法是錯誤的這個要求。

UPDATE1:

表結構:

id  name:    status: 
auto  name1     0 
auto  name2     1 
auto  name3     0 

凡本運行,

while ($row = mysql_fetch_array($sql)) { 
     $name[] = $row['name']; 
     $status[] = $row['status']; 

    } 

值存儲這樣

$name[0] 
    $status[0] 
    $name[1] 
    $status[1] 
    $name[2] 
    $status[2] 

我可以運行像這樣

UPDATE TABLE set status=$status[0] where name= $name[0] 
+0

你的'update'查詢在哪裏? – hassan

+0

我會處理更新查詢,,首先我想回顯,值,一旦新值被採取更新可以運行 –

+0

你想查看新的'提交的結果?不是數據庫更新的結果,對吧? – hassan

回答

3

首先更新查詢,以下行應在<form></form>

echo "<td><input name='new_status' size='5' type='text' value='$status[$i]' /></td>"; 

第二,這個代碼塊應該在你的腳本的頂部:

if(isset($_REQUEST['save_new'])){ 
    //Your update query 
} 

在此代碼塊中,您需要更新查詢,它會更新您的數據庫,例如

UPDATE TABLENAME SET a = new_value WHERE b = c; 

這是您可以訪問輸入值的變量;

$_POST['new_status']; 

最後,我強烈建議使用預處理語句。否則,您的代碼將打開SQL注入。

僞代碼:

<?php 
//if the submit button is pressed, update the Database 
if (isset($_REQUEST['save_new'])) { 
    //Update your Database 
} 

//get the new values from Database 
$sql = mysql_query("SELECT * FROM TABLENAME"); 

//store values into new variable 
$name = array(); 
$status = array(); 
$id = array(); 
while ($row = mysql_fetch_array($sql)) { 
    $name[] = $row['name']; 
    $status[] = $row['status']; 
    $id[] = $row['id']; 
} 

//create HTML-From 
echo '<form action="" method="post">'; 
for ($i = 0; $i < count($name); $i++) { 
    echo "<tr> "; 
    echo "<td>" . $name[$i] . "</td>"; 
    echo "<td><input name='new_status' size='5' type='text' value='$status[$i]' /></td>"; 
} 
echo '<input type="submit" value="Save New Values" name="save_new">'; 
echo "</form>"; 
?> 

這「新的ID」可以保存在你的腳本中的隱藏輸入:

$indecipherable_id = (int)$id * 7258289382234; //Only a example --> use a more complex algorithm! 

您更新查詢之前,你可以解密id和選擇行。

+0

哪個變量會在這裏存儲新值? $ status [$ i] .. –

+0

你對新值有什麼意義?您在表格中輸入的值? –

+0

一旦我從數據庫得到的值,我會修改它們,如何獲得修改(輸入)的值 –

相關問題