2011-11-24 149 views
-1

編輯表中的字段對我來說變得很頭疼,因爲我找不出簡單的解決方案。我的眼睛找不到我的問題原因。數據庫功能的更新不起作用。

這是我的PHP爲viewproducts.phpPHP編輯不工作

<?php 
    $result = mysql_query("SELECT * FROM products ") 
       or die(mysql_error()); ; 

    if (mysql_num_rows($result) == 0) { 
     echo 'There Arent Any Products'; 
    } else { 

     echo "<table border='1' width=100%><tr><th>Product Name</th><th>Description</th><th>Price</th><th>Image</th><th>Edit</th><th>Delete</th>"; 
     while($info = mysql_fetch_array($result)) 
     { 
      echo "<tr>"; 
      echo "<td>" . $info['name']. "</td>"; 
      echo "<td>" . $info['description']. "</td>"; 
      echo "<td>£" .$info['price']." </td>"; 
      echo "<td>" . "<img src='../getImage.php?id=" . $info['serial'] ."'/></td>"; 

      echo '<td> <a href="edit.php?product_id=' . $info['serial'] . '">Edit</a></td>'; 
     } 
    } 
    echo "</tr>"; 
    echo "</table>"; 
?> 

這裏是我的edit.php頁:

<?php 
    $id = $_GET['product_id']; 
    $query = mysql_query("SELECT * FROM products WHERE serial = '$id'") 
       or die(mysql_error()); 

    while($info = mysql_fetch_array($query)) { 
     echo ""; 

     $name = $info['name']; 
     $description = $info['description']; 
     $price = $info['price']; 
     $picture = $info['picture']; 
    } 
?> 

<form action="editsuccess.php" method="post"> 

Product ID:<br/> 
<input type="text" value="<?php echo $id;?>" name="serial" disabled/> 

<br/> 

Name:<br/> 
<input type="text" value="<?php echo $name;?>" name="name"/> 

<br/> 

Description:<br/> 
<input type="text" value="<?php echo $description;?>" name="description"/> 

<br/> 

Price:<br/> 
<input type="text" value="<?php echo $price;?>" name="price"/> 

<br/> 

Picture:<br/> 
<? echo'<img src="../getImage.php?id=' . $info['serial'] .'"/>'?> 

</br> 

<input type="submit" value="Update Product"/> 

</form> 

最後這裏是我的editsuccess.php頁:

<?php 
    session_start(); 
    require_once '../includes/db.php'; 
    $id = $_REQUEST['product_id']; 

    $name = $_POST['name']; 
    $description = $_POST['description']; 
    $price = $_POST['price']; 

    $info = "UPDATE products SET name='$name', description ='$description', price ='$price' WHERE serial ='$id'"; 

    mysql_query($info) or die ("Error: ".mysql_error()); 

    echo "Database updated."; 

?> 

任何幫助傢伙?

+0

[**請不要在新代碼中使用'mysql_ *'函數**](http://bit.ly/phpmsql)。他們不再被維護,[棄用過程](http://j.mp/Rj2iVR)已經開始。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果你選擇PDO,[這裏是一個很好的教程](http://j.mp/PoWehJ)。 –

回答

2

它看起來像被髮送您沒有將product_id傳遞到您的editsuccess.php頁面。試着改變你的<form>聲明的第一行中edit.php到:

<form action="editsuccess.php?product_id=<?php echo $id; ?>" method="post"> 
+0

感謝clive,它現在的工作!我還有一個問題。我怎麼不能讓圖像顯示與下面的代碼?我把它在我的其他頁面上顯示出來,但不在這個頁面上..... <? echo''?> – Jahed

+0

我認爲是因爲你將'$ info'設置爲你的'mysql_query'的結果,它不會像你所期望的那樣是一個記錄數組。我猜你需要使用'$ _POST ['serial']'而不是 – Clive

+0

,沒有像這樣的東西,因爲我說我得到它在另一個頁面上使用相同的代碼行。你是否希望我編輯我的第一篇文章併發布工作頁面的代碼和不工作的頁面? – Jahed

1

變化

<input type="text" value="<?php echo $id;?>" name="serial" disabled/> 

<input type="text" value="<?php echo $id;?>" name="product_id" disabled/> 

你也應該刪除從外地disabled屬性,因爲一個無效字段將不會在表單提交

0

它看起來像你沒有連接。我看不到連接...