SELECT には 2 つの行がありますが、どちらも同じ変数を持っています: $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 パラメータを=>$loadmore = getUpdates_loadmore($lastid);
に追加する必要がありますfunction Total_Updates($user_ids)
function Total_Updates($user_ids, $lastid)