2014-06-13 83 views
0

我有这样的代码如何从数据库访问数据并创建选项值?

$result = mysql_query("SELECT name from room"); 
$data = mysql_fetch_array($result); 
$firstValue=""; 
while($data = mysql_fetch_array($result)){ 
    if($firstValue==""){ 
     $firstValue=$data['name']; 
    } 
    if(isset($_POST["occupant"])and trim($_POST["choice"])==$data['name']){ 
     echo '<option selected="selected" value="'.$data['name'].'" >'.$data['name']; 
     echo '</option>'; 
    }else 
     { 
     echo '<option value="'.$data['name'].'" >'.$data['name']; 
     echo '</option>'; 
     } 
    } 

什么,我想在这里是展示从我的数据库中的所有数据,但是当我在浏览器中打开它仅显示到最后数据的第二数据。我想知道为什么第一个数据丢失了。 有人可以在这里知道我的错误吗?

+0

此外,请注意,您应该切换到mysqli_或PDO扩展名,因为从PHP 5.5.0开始,将不推荐使用mysql_扩展名。这是一个容易的变化,在你开始时而不是以后会很好。 :-) – brechmos

+0

我并不真正关注'第二数据'是什么。你的意思是你想要完全跳过第一个记录?只需在SQL中过滤出来即可。使用LIMIT子句:LIMIT 999,1。或者使用WHERE id> 1。 –

+0

如何切换到mysqli? @Richard Testani,我不想跳过第一个,我想要的是显示所有数据.. – melly

回答

2

摆脱第一:

$data = mysql_fetch_array($result); 

它弹出的第一条记录了你的结果集。

$result = mysql_query("SELECT name from room"); 
$firstValue=""; 
while($data = mysql_fetch_array($result)){ 
+0

我做了很多次,但仍然失去了第一个数据..如何出发? – melly

+0

这是*不*你的代码显示。 –

+0

你能告诉我我的代码有什么问题吗? – melly