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);