2014-04-17 17 views
0

好吧,我不是在PHP的很好,但在努力學習儘可能多地。所以我用管理面板製作了網站。在管理面板中,我使用2個按鈕顯示數據庫中的所有行 - 「刪除」和「編輯」。刪除按鈕正在工作,但我編輯有問題。因此,這裏是我如何表現,通過按鈕編輯一行

for ($i = $start; $i < $end; $i++) 
    { 
      // make sure that PHP doesn't try to show results that don't exist 
    if ($i == $total_results) { break; } 
      // echo out the contents of each row into a table 
     echo "<tr>"; 
     echo '<td><p>' . mysql_result($result, $i, 'id') . '</p></td>'; 
     echo '<td>' . mysql_result($result, $i, 'caption') . '</td>'; 
     echo '<td>' . mysql_result($result, $i, 'name') . '</td>'; 
     echo '<td>' . mysql_result($result, $i, 'alt') . '</td>'; 
     echo '<td>' . mysql_result($result, $i, 'title') . '</td>'; 
     echo '<td><a href="delete.php?id=' . mysql_result($result, $i, 'id') . '">Delete</a></td>'; 
     echo '<td><a href="edit.php?id=' . mysql_result($result, $i, 'id') . '">Edit</a></td>'; 

     echo "</tr>"; 
    } 

結果當我點擊編輯頁轉到edit.php和URL與選擇的圖片的ID。例如(/edit.php?id=68)。下面是edit.php

<form action="" method="post" enctype="multipart/form-data"> 
      Choose category 
     <select name="img_category"> 
      <option value="1">Cars</option> 
      <option value="2">Animals</option> 
      <option value="3" >PC's</option> 
      <option value="4" >Sport</option> 
     </select><br/><br /> 
      Caption 
      <input type="text" name="caption" /><br /><br /> 
      Alt 
      <input type="text" name="alt" /><br /><br /> 
      Title 
      <input type="text" name="title" /><br /><br /> 
      <input type="submit" name="submit" id="submit" value="Edit" /><br /><br /> 
</form> 
<?php 
if (isset($_POST['submit'])) 
{ 
    require_once("../include/db.php"); 
    $id =$_POST['id']; 
    $caption = $_POST['caption']; 
    $title = $_POST['title']; 

    $query = "UPDATE images SET caption = '$caption', title = '$title' WHERE id = '$id'"; 

    $result = mysqli_query($con, $query) or die("Error in query: ".mysqli_error($con)); 
} 
?> 

我希望能夠編輯captionalt和圖像的title。現在當我按'編輯'時,什麼都不會發生。我肯定不是那麼難,但對我而言是種。

+1

變化WHERE ID = 'ID' 到ID = '$ ID' –

+0

改變,但依然不改在MySQL – user3346678

+0

你有任何錯誤什麼? –

回答

1

試試這個

<?php 
if (isset($_POST['submit'])) 
{ 
    require_once("../include/db.php"); 
    $id =$_GET['id']; 
    $caption = $_POST['caption']; 
    $title = $_POST['title']; 

    $query = "UPDATE images SET caption = '$caption', title = '$title' WHERE id = '$id'"; 

    $result = mysqli_query($con, $query) or die("Error in query: ".mysqli_error($con)); 
} 
?> 
+0

只是一個問題。我怎樣才能加載這種形式與數據庫填充字段。我的意思是什麼時候加載也加載數據庫中的'caption','title'? – user3346678

4

在你的SQL語句,你似乎並不在你的ID添加。

$query = "UPDATE images SET caption = '$caption', title = '$title' WHERE id = 'id'"; 

您應該添加$

$query = "UPDATE images SET caption = '$caption', title = '$title' WHERE id = '$id'"; 

更新:

似乎沒有在你的形式的ID字段。您嘗試在POST中檢索它,但沒有這樣的字段可從中檢索數據。你應該通過表單或其他方式將id傳遞給查詢。

UPDATE2:

正如其他人所說,要做到這一點最簡單的方法是去是讓你的ID從GET而不是POST。

更改

$id =$_POST['id']; 

$id =$_GET['id']; 
+0

已更改但仍不會更改mysql中的任何內容 – user3346678

+0

已更新我的帖子與一些更多的信息。 – L7Lynx

+0

但我通過'id'從前一頁和'id'已經在我的網址? – user3346678

2

使用GET方法,從URL趕上ID

只是改變

$id =$_POST['id']; 

$id =$_GET['id']; 
+0

哦,我的......那就是問題所在。我雖然因爲我通過前一頁的ID,我不需要再次在這裏傳遞它。 – user3346678

+1

你必須始終使用GET方法,同時從url中檢索一些東西 – Dinesh

2

您試圖使用$ _POST檢索$ _GET值,這會使$ id變量爲空。

更改$id =$_POST['id'];$id = $_GET['id'];

而且改變你的查詢

$query = "UPDATE images SET caption = '$caption', title = '$title' WHERE id = '$id'"; 
2

形式的某個位置添加

<input type="hidden" name="id" value='<?=(int)$_GET['id'] ?>'/> 

有加:有一對夫婦的安全問題與您的代碼。記住你的代碼不是生產準備好的!但這不是你的問題,所以我不會去那個。

+0

是的,我知道這一點。只是想讓它工作。我會盡力讓它更安全。此頁面僅適用於管理員(我),但仍然是。 – user3346678

+0

多數民衆贊成在我認爲......上帝的主意,使其更安全......我已經看到完全不安全的系統上線,因爲服務器升級......所有有安全的默默無聞 – snitch182