我单独试过$ 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.
}
?>
答案 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()");