2012-03-16 63 views
-1

好的,如果有人可以幫助這個簡單的PHP和MySQL的問題。PHP mysql表格,STUCK

我是新來的數據庫,並試圖創建我的第一個用戶友好的數據庫。但我遇到了一個小問題。

我有一個顯示的數據,比我也有相同的地方數據與編輯聯繫一起顯示的網頁,則是進入到編輯表單。但是在編輯表單中信息不會出現。

這裏是我的「edit.php」它顯示了從數據庫信息與編輯一起鏈接:

$con = mysql_connect("localhost","root",""); 
    if (!$con) 
     { 
     die('Could not connect: ' . mysql_error()); 
     } 

    mysql_select_db("beyondmotors", $con); 

    $result = mysql_query("SELECT * FROM vehicles"); 

    echo "<table border='1'> 
    <tr> 
    <th>ID</th> 
    <th>Year</th> 
    <th>Make</th> 
    <th>Model</th> 
    <th>Mileage</th> 
    </tr>"; 

    while($row = mysql_fetch_array($result)) 
     { 
     echo "<tr>"; 
     echo "<td>" . $row['id'] . "</td>"; 
     echo "<td>" . $row['year'] . "</td>"; 
     echo "<td>" . $row['make'] . "</td>"; 
     echo "<td>" . $row['model'] . "</td>"; 
     echo "<td>" . $row['mileage'] . "</td>"; 
     echo ("<td><a href=\"edit_form.php?id=$row[id]\">Edit</a></td></tr>"); 
     echo "</tr>"; 
     } 
    echo "</table>"; 

    mysql_close($con); 

這裏是編輯形式:

<html> 
    <head> 
    <title>Form Edit Data</title> 
    </head> 

    <body> 
    <table border=1> 
     <tr> 
     <td align=center>Form Edit Employees Data</td> 
     </tr> 
     <tr> 
     <td> 
      <table> 
      <? 
      $con = mysql_connect("localhost","root",""); 
    if (!$con) 
     { 
     die('Could not connect: ' . mysql_error()); 
     } 

    mysql_select_db("beyondmotors", $con); 
      $order = "SELECT * FROM vehicles where id=$id"; 
      $result = mysql_query($order); 
      $row = mysql_fetch_array($result); 
      ?> 
      <form method="post" action="edit_data.php"> 
      <input type="hidden" name="id" value="<? echo "$row[id]"?>"> 
      <tr>   
       <td>Year</td> 
       <td> 
       <input type="text" name="year" 
      size="20" value="<? echo "$row[year]"?>"> 
       </td> 
      </tr> 
      <tr>   
       <td>Make</td> 
       <td> 
       <input type="text" name="make" 
      size="20" value="<? echo "$row[make]"?>"> 
       </td> 
      </tr> 
      <tr>   
       <td>Model</td> 
       <td> 
       <input type="text" name="model" 
      size="20" value="<? echo "$row[model]"?>"> 
       </td> 
      </tr> 
      <tr> 
       <td>Mileage</td> 
       <td> 
       <input type="text" name="mileage" 
       value="<? echo "$row[mileage]"?>"> 
       </td> 
      </tr> 
      <tr> 
       <td align="right"> 
       <input type="submit" 
       name="submit value" value="Edit"> 
       </td> 
      </tr> 
      </form> 
      </table> 
     </td> 
     </tr> 
    </table> 
    </body> 
    </html> 

比我也有編輯的數據,但它甚至沒有達到。這裏是我在編輯表單中得到的! http://s562.photobucket.com/albums/ss69/intensemx/?action=view&current=pic.jpg

我跟着this教程:

幫助我在這裏失去了,在此先感謝:)

任何一個可以推薦好地方,我可以得到一個類似的教程。

+0

在編輯表單中,您分配了「$ id」變量的位置?某處你應該有'$ id = $ _GET ['id']' – 2012-03-16 17:16:53

+0

@Brendan Bullen - register_globals – Quentin 2012-03-16 17:17:44

+0

@Quentin是的。那個暴行。忘了那個。 :) – 2012-03-16 17:19:29

回答

0

你的編輯形式使用PHP短標記(<? ?>),這也有可能不是你的服務器上啓用,所以一切看起來是錯誤的。

修復它的選項是1)啓用短標籤,或者2)在編輯文件中將<?更改爲<?php

7

您使用本教程假設short tags被開啓。修改代碼以代替<?php

這也從一個SQL injection vulnerability受到影響。

這似乎也認爲register_globals已開啓。

不要使用教程。這是非常糟糕的。

+0

我認爲這可能是古老的,但沒有 - 就像2008年3月一樣。親愛的! (我試着對它的缺點留下評論,但它可能會卡在緩和中 - 當然它們也可能不會發布它)。 – halfer 2012-03-16 17:20:58

+0

+1爲答案和突出顯示該教程是多麼糟糕。 – 2012-03-16 17:21:19

+0

更改了標籤以允許短標籤,打開register_global,仍然是相同的響應,我注意到該教程很糟糕,我幾乎沒有做過任何事情。你能否推薦一個我可以得到類似的更新版本的地方?謝謝 – IntenseMX 2012-03-16 18:17:09

1

您需要將您的數組鍵放在引號中。例如,這樣的:

<input type="hidden" name="id" value="<? echo "$row[id]"?>"> 

應該是這樣的:

<input type="hidden" name="id" value="<? echo $row['id']?>"> 

現在,除此之外,請考慮的問題由昆汀在他的回答提到。