2012-03-16 68 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']?>"> 

现在,除此之外,请考虑的问题由昆汀在他的回答提到。