Я относительно новичок в PHP, и мне сложно получить правильный вывод из класса. Я использую SELECT * в подготовленном заявлении в attemp, чтобы отменить строку, в которой указан статус входа в систему. В коде Thge, который у меня есть, в настоящее время создается массив, но если зарегистрировано более одного пользователя, записываться по первой, только позволяя мне отображать одну строку.Выберите несколько строк с использованием подготовленных выражений в классе A
Обычно я мог бы достичь такой задачи с помощью массива 2d, где каждая строка представляет собой массив, содержащий массив пар ключ-значение, но мне трудно заставить это работать.
Способ заключается в следующем:
public function getUserByLoginStatus($loginStatus) {
$session=new mysqli(self::SERVERNAME,self::USERNAME,self::DBPASS);
mysqli_select_db($session,"users");
$statement=$session->prepare("SELECT * FROM `logins` WHERE `loginstatus`= ? ;");
$statement->bind_param('s', $this->loginStatus);
$statement->execute();
$statement->store_result();
$statement->bind_result($userId,$userHandle,$eMail,$password,$gender,
$loginStatus,$currentSess,$currentIpv4,$currentIpv6,
$lastActivity,$lastLoginDate,$lastLoginTime);
$numberOfRows=$statement->num_rows;
if($numberOfRows < 1)
{
$errorMessage="No users currently online";
$statement->close();
$session->close();
return $errorMessage;
}
else
{
while($statement->fetch())
{
$returnArr=['userid' => $userId, 'userhandle' => $userHandle, 'email' => $eMail,
'password' => $password, 'gender' => $gender, 'loginstatus' => $loginStatus,
'currentsess' => $currentSess, 'currentipv4' => $currentIpv4, 'currentipv6' => $currentIpv6,
'lastactivity' => $lastActivity, 'lastlogindate' => $lastLoginDate, 'lastlogintime' => $lastLoginTime];
}
$statement->close();
$session->close();
return $returnArr;
}
}
Если таблица столбец установлен в «из» или «деактивируется», отображается правильное сообщение об ошибке. Если какой-либо 1 пользователь настроен на «in», я могу просматривать данные из полей. Если> 1 пользователь находится в режиме онлайн, отображается только последний пользователь (перезаписывается, я считаю).
Вот как я пытаюсь распечатать это в настоящее время:
Создание экземпляра, пытающийся выходные данные.
в ваше время цикла $ returnArr = всегда будет иметь последний результат, попробуйте $ returnArr [] = –
Большое спасибо! Я очень благодарен за этот ответ и за то, что у него есть другой человек, чтобы посмотреть его, это прекрасно решает вопрос. однако это только стало болезненно очевидным. Большое уважение. :) –