2012-03-16 14 views
-1

誰かがこの簡単なPHPとMySQLの質問に助けてくれたらどうかしてください。PHP mysql form、STUCK

私は初めてデータベースにアクセスし、初めてユーザーフレンドリーなデータベースを作成しようとしています。しかし、私は小さな問題に走った。

データを表示するページがあります。同じデータが編集リンクとともに表示され、編集フォームに移動するページもあります。しかし、編集フォームでは情報が表示されません。

$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> 

私も編集データを持っているよりも、ここで

は私の「个人设定」それは編集リンクとともにデータベースからの情報を示していますしかしそれはそれにも達しません。ここでは、私は編集フォームで得るものです!私はthisチュートリアル続いhttp://s562.photobucket.com/albums/ss69/intensemx/?action=view&current=pic.jpg

:私はここに迷ってしまいました

ヘルプを、

:)事前に感謝のいずれかは、私は同様のチュートリアルを得ることができる良い場所をお勧めします。

+0

ここで、編集フォームにあなたは '$ id'変数を割り当てましたか? '$ id = $ _GET ['id']' –

+0

@Brendan Bullen - register_globals – Quentin

+0

@Quentinと同じようなものが必要です。その悪徳。そのことを忘れてしまった。 :) –

答えて

0

あなたの編集フォームはおそらくあなたのサーバでは有効になっていないPHPショートタグ(<? ?>)を使用しているので、すべてが間違っています。

修正するオプションは、1)短いタグを有効にする、または2)編集ファイルでから<?phpに変更することです。

7

使用しているチュートリアルでは、short tagsがオンになっていると仮定しています。代わりにコードを変更して<?phpを使用してください。

SQL injection vulnerabilityもあります。

また、register_globalsがオンになっているように見えます。

このチュートリアルは使用しないでください。危険なほど悪いです。

+0

私は古代かもしれないと思っていましたが、2008年3月のように最近です。 (私はその欠陥についてのコメントを残そうとしましたが、それは適度に詰まっているかもしれません - もちろん、とにかくそれを公開しないかもしれません)。 – halfer

+0

+1とそのチュートリアルがいかに悪いかを強調表示するため+1。 –

+0

短いタグを許可するようにタグを変更し、register_globalをオンにして、同じ応答を返しました。チュートリアルが悪いことに気付きました。同様の最新バージョンを入手できる場所をお勧めしますか?ありがとう – IntenseMX

1

あなたの配列キーは引用符で囲む必要があります。たとえば、この:

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

はこのことする必要があります

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

、それ以外にも、彼の答えにクエンティンで言及した問題を検討してください。