我无法弄清楚如何使之前的功能正常工作。我希望这可以检查数组最后一项的mysql字段'title'是否等于当前项目,如果不我想要它打印标题。
$usernotes = mysql_query("select * from notes where user_id= '$user_id'");
Print "<table border=0>";
while($info = mysql_fetch_array( $usernotes ))
{
if( $info['title'] != prev($info['title') )
{
Print "<tr><td><a href=\"mainpage.php?note_id=".$info['title']."\">".$info['title'] . "</a></td></tr> ";
}
}
Print "</table>";
它给了我错误
Warning: prev() expects parameter 1 to be array
我该怎么办?
由于
答案 0 :(得分:2)
函数prev()用于在逐项读取数组时更改当前索引。 但是你的循环不是读取数组,而是读取SQL记录集。
这是应该有用的东西:
Print "<table border=0>";
$prev_title = '';
while($info = mysql_fetch_array( $usernotes ))
{
if( $info['title'] != $prev_title )
{
$prev_title = $info['title'];
Print "<tr><td><a href=\"mainpage.php?note_id=".$info['title']."\">".$info['title'] . "</a></td></tr> ";
}
}
Print "</table>";
答案 1 :(得分:2)
这是一个小解决方法。
print "<table border=0>";
$previousValue = "";
while($info = mysql_fetch_array( $usernotes ))
{
if( $info['title'] != $previousValue) )
{
$previousValue = $info['title'];
print "<tr><td><a href=\"mainpage.php?note_id=".$info['title']."\">".$info['title'] . "</a></td></tr> ";
}
}
print "</table>";
您的代码中几乎没有问题。
答案 2 :(得分:1)
这应该有效:
$prevTitle = '';
while($info = mysql_fetch_array( $usernotes ))
{
if( $info['title'] !== $prevTitle )
{
Print ...
}
else
{
$prevTitle = $info['title'];
}
}
答案 3 :(得分:0)
我认为问题是你错过了prev()函数中的结束方括号。
答案 4 :(得分:0)
您忘记了在prev附近关闭]
。
Print "<table border=0>";
while($info = mysql_fetch_array( $usernotes ))
{
if( $info['title'] != prev($info['title']) )
{
Print "<tr><td><a href=\"mainpage.php?note_id=".$info['title']."\">".$info['title'] . "</a></td></tr> ";
}
}
Print "</table>";
所以你收到了这个错误。尝试上面的代码并检查重新结果。