SELECT * FROM没有在MySQL表中获取第一行

时间:2014-08-14 11:44:02

标签: php mysql sql phpmyadmin

我不确定这是我的错误还是愚蠢的错误,但我想从数据库中显示一系列剧本和戏剧表演。

我可以让它从行/条目2向下精确显示 - 但它根本不会显示第一行。只有一个条目,不显示任何内容。 我已经尝试改变每个的id,但它似乎只是第一个输入的未被拾取,但后面输入的是。

显示表格的代码如下。

<?php
$con = mysql_connect("localhost"," me "," mypass word");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

  mysql_select_db(" database name", $con);

  $data = mysql_query("SELECT * FROM table") 
 or die(mysql_error());
 $info = mysql_fetch_array( $data );

 while($info = mysql_fetch_array( $data )) 
 {
 Print "<tr><td style='background-color: #D3D3D3;  '>";
 Print " ".$info['title'] . " ";
 Print "</td>";

...等...

   Print "</td> </tr>";
 } 

?>
    </table>

看起来很简单,但我根本无法理解。任何帮助非常感谢。

6 个答案:

答案 0 :(得分:2)

删除此行

 $info = mysql_fetch_array( $data );
你正在使用它两次。上面和后面的循环

答案 1 :(得分:0)

您正在拨打mysql_fetch_array()两次。

删除第一个:

 $info = mysql_fetch_array( $data );

答案 2 :(得分:0)

删除此行

 $info = mysql_fetch_array( $data );

试试这个

<?php
$con = mysql_connect("localhost"," me "," mypass word");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

  mysql_select_db(" database name", $con);

  $data = mysql_query("SELECT * FROM table") 
 or die(mysql_error());

 while($info = mysql_fetch_array( $data )) 
 {
 Print "<tr><td style='background-color: #D3D3D3;  '>";
 Print " ".$info['title'] . " ";
 Print "</td>";

答案 3 :(得分:0)

您正在调用mysql_fetch_array()两次 - 在while循环中及其上方。

 $info = mysql_fetch_array( $data );

答案 4 :(得分:0)

因为你正在两次获取数组:

$info = mysql_fetch_array( $data );

这里,您的数组将获取当前第一个元素,并将当前元素设置为第二个元素。 因此,以下行从第二个元素中获取数组元素。

while($info = mysql_fetch_array( $data ))

只需删除

行即可

$info = mysql_fetch_array( $data );

完成了。

答案 5 :(得分:0)

这不是一个错误。

每当您发送mysql_fetch_array( $data );时,它会提取一行并自动提升内部行标识符属性。下次调用相同的函数时,它将从第二行开始。

在循环外部使用赋值与PHP mysql函数一起使用是不切实际的,当演示的行为不是您想要做的时候。

删除$info = mysql_fetch_array( $data );行,您的代码将按预期运行。