Php 数组和描述限制
我的问题是:Php 数组和描述限制,php,mysql,limit,Php,Mysql,Limit,我的问题是: $q = 'SELECT * FROM s_stats WHERE srv_id='.$sid.' ORDER BY date DESC LIMIT 5'; $result = mysql_query($q) or die(mysql_error()); while ($row = mysql_fetch_array($result)) { if ($row[percent] == null) // don't work $procent[] = 1;
$q = 'SELECT * FROM s_stats WHERE srv_id='.$sid.' ORDER BY date DESC LIMIT 5';
$result = mysql_query($q) or die(mysql_error());
while ($row = mysql_fetch_array($result))
{
if ($row[percent] == null) // don't work
$procent[] = 1;
else
$procent[] = $row[percent];
}
$procent[] = implode('-', $procent);
可能是if(!isset($row['percent'])
而不是if($row['percent']==null)
试试看
if ($row[percent] === null)
当使用非严格的=
运算符时,0==null
和'==null
也将计算为true,这可能是不可取的。尝试:如果($row[“percent”]==null | |$row[“percent”]==”)
$q='从srv_id='.$sid.$sid.'ORDER BY date DESC LIMIT 5';
$result=mysql\u query($q)或die(mysql\u error());
while($row=mysql\u fetch\u数组($result))
{
回显“*”、$row[“百分比”]、“*
”;
如果(!isset($row[“percent”]))
$procent[]=1;
其他的
$procent[]=$row[百分比];
}
$procent[]=内爆('-',$procent);
并打印:
十二,
四,
66你应该在“百分比”左右加上引号。PHP无论如何都会接受它,但您将得到一个未定义的常量警告。那么,什么东西不起作用呢?当它不应该返回true时返回true还是应该返回true时返回false?我的意思是,在您标记为//不工作的行;if语句应该通过还是失败,以及更多的内容到else?如果表中没有足够的行(如您可以看到的DESC LIMIT 5),百分比将变为1%Ahh,这将完全改变整个问题。如果数据库条目(行)不存在,它将无法为此输入while循环,因此它甚至不会到达If/else语句。我建议使用
mysql\u num\u rows($q)
查看是否有足够的条目,如果没有,请采取适当的措施。不客气。如果您的问题现在已解决,请选择此答案作为已接受答案。:)放置echo'*',$row['percent'],'*\n'在if
之前输入code>并查看它打印的内容。您是否选择在开发环境中显示错误?似乎有关于$row['percent']
的警告或错误。还可以尝试echo'*',isset($row['percent']),“*
”代码>查看问题出现的位置…@Hossein result=>11小时。。。同时告诉您希望打印哪些值?您的原始数据不是12 4 66?我想要5个大于12 6 66 1的数字(表中只有3条记录)
$q = 'SELECT * FROM s_stats WHERE srv_id='.$sid.' ORDER BY date DESC LIMIT 5';
$result = mysql_query($q) or die(mysql_error());
while ($row = mysql_fetch_array($result))
{
echo '*', $row['percent'], '*<br/>';
if (!isset($row["percent"]))
$procent[] = 1;
else
$procent[] = $row[percent];
}
$procent[] = implode('-', $procent);