Php数组偏移量

时间:2016-03-03 03:35:31

标签: php mysql arrays database

我单独试过$ row [0]它可以工作,但不是$ row [1]。它像这样说"注意:未定义的偏移:在第10行和第34行的C:\ xampp \ htdocs \ t2.php中为1;

   <?php
    $c=mysql_connect("localhost","root",""); 
//db connection
    mysql_select_db("niro");

    $re=mysql_query("select id from detail where grade >=80 ORDER BY RAND()");
//select who are all have above 80

        while($x=mysql_fetch_array($re, MYSQL_BOTH))
    {
    printf ("%s %s",$x[0],$x[1]."\n");
// i have multiple fields but it says undefined offset : 1.
    }
    ?>

2 个答案:

答案 0 :(得分:3)

我想原因是如果你的表中有mutlit字段,你在查询结果事件中只有一个字段id。 因为你的sql是“从详细信息中选择id,其中等级&gt; = 80 ORDER BY RAND()”。

您应该使用“select * from detail where grade&gt; = 80 ORDER BY RAND()”来获取表格中的其他字段。 请确保ORDER BY RAND()是你想要的。它将按rand顺序选择数据。如果您只想获得所有等级> = 80的数据,则无需随机订购。

更新: 数组索引是提交的。 如果你只想获得并打印前两行,你可以使用如下的sql: “选择*来自细节,其中等级&gt; = 80限制2”

答案 1 :(得分:2)

您正在获取未定义的偏移量,因为您只在选择查询中选择一列尝试使用select *,或者您可以提及更多列名称。

$re=mysql_query("select * from detail where grade >=80 ORDER BY RAND()");