你有2线,SELECT,但是两者都具有相同的变量:$ user_ids和$ loadmore
错误消息应显示什么是警告有关。但是$ user_ids看起来是正确声明的,所以这会留下$ loadmore。
它也看起来function Total_Updates
是在function Updates
?
如果它是一个单独的函数(并且只是一个复制粘贴错误?),您可能只想在两个函数的开头都使用global $loadmore;
。
编辑:
代码使用全局可能的更改。使用此功能Updates
,始终需要在Total_Updates
之前调用。
public function Updates($user_ids, $lastid)
{
global $loadmore; // Keep available for Total_Updates
if($lastid==0) {
$loadmore = "";
}else{
$loadmore = " AND M.msg_id < $lastid ";
}
$db_conx = mysqli_connect("localhost", "root", "", "test");
$sql = "SELECT M.msg_id, M.uid_fk, M.message, M.created, U.fname, U.lname, M.uploads, M.profile_uid FROM messages M, users U WHERE M.uid_fk=U.uid AND M.uid_fk IN ($user_ids) $loadmore
UNION
SELECT M.msg_id, M.uid_fk, M.message, M.created, U.fname, U.lname, M.uploads, M.profile_uid FROM messages M, users U WHERE M.uid_fk=U.uid AND M.profile_uid IN ($user_ids) $loadmore ORDER BY msg_id DESC LIMIT " .$this->postcount;
$query = mysqli_query($db_conx, $sql);
while($row = mysqli_fetch_array($query, MYSQLI_ASSOC)){
$data[]=$row;
return $data;
}
}
public function Total_Updates($user_ids)
{
global $loadmore; // From Updates
$db_conx = mysqli_connect("localhost", "root", "", "test");
$sql = "SELECT M.msg_id, M.uid_fk, M.message, M.created, U.fname, U.lname, M.uploads, M.profile_uid FROM messages M, users U WHERE M.uid_fk=U.uid AND M.uid_fk IN ($user_ids) $loadmore
UNION
SELECT M.msg_id, M.uid_fk, M.message, M.created, U.fname, U.lname, M.uploads, M.profile_uid FROM messages M, users U WHERE M.uid_fk=U.uid AND M.profile_uid IN ($user_ids) $loadmore ORDER BY msg_id DESC ";
$query = mysqli_query($db_conx, $sql);
$data = mysqli_num_rows($query);
exit(); // This is just for test? it disables return.
return $data;
}
一种替代的解决方案是创建用于loadmore前一个单独的函数:
public function getUpdates_loadmore($lastid)
{
if($lastid==0) return "";
return " AND M.msg_id < $lastid ";
}
而对于此$ lastid参数将需要被加入到function Total_Updates($user_ids)
=>function Total_Updates($user_ids, $lastid)
你应该更新你的问题,反映的不是增加一个答案 在你的'功能Total_Updates'这个'$ loadmore'没有定义。如果你一个接一个地调用这些函数,你可以用我的答案中所描述的'global'。 – NiKiZe
非常感谢你NiKiZe你的主张完美运行... –