Mysql选择自动跳过第一个值

时间:2014-08-15 08:56:44

标签: php mysql

我有mysql表看起来像这个

id  title       start            resourceId

5   event1  2014-08-15 08:00:00     STK1    
6   event2  2014-08-15 08:00:00     STK2    
7   event3  2014-08-15 08:00:00     STK3    

和php查询:

<?php 
include("config.php");

$data = mysql_query ("SELECT * FROM `evenement`");
$zaznam = mysql_fetch_array ($data);
while($zaznam = mysql_fetch_array ($data))
{
   $arr2[] = $zaznam["start"].$zaznam["resourceId"];
}

print_r($arr2);
?>

这个查询工作得很好,但我总是得到event2和3.它绝对不会看到第一个结果。

这是我的 print_r($ arr2);

Array ( [0] => 2014-08-15 08:00:00STK2 [1] => 2014-08-15 08:00:00STK3 )

我不明白为什么我只得到两个结果。它一直都在工作,但今天,我把桌子倒空了,它就停止了工作。

4 个答案:

答案 0 :(得分:2)

你有两次mysql_fetch_array()调用,第一次是在循环获得第一行之前。

使用

$data = mysql_query ("SELECT * FROM `evenement`");
while($zaznam = mysql_fetch_array ($data))
      {
       $arr2[] = $zaznam["start"].$zaznam["resourceId"];
      }

代替。

答案 1 :(得分:1)

你两次获取你的resoults:

 $zaznam = mysql_fetch_array ($data);
        while($zaznam = mysql_fetch_array ($data))

删除第一个。

答案 2 :(得分:1)

您正在拨打mysql_fetch_array两次,请删除此行:

$zaznam = mysql_fetch_array ($data);

你永远不会使用它,因为你覆盖了while循环中的值。

另请注意,mysql_*函数已弃用,请改用mysqli_*

答案 3 :(得分:0)

在while循环之前从代码中删除此行。

$zaznam = mysql_fetch_array ($data);

你得到错误,因为当调用mysql_fetch_array函数时,它会从mysql_query结果中获得结果。