사용자와 로그가 2 개인 테이블이 있습니다. 현재 내 쿼리는 그렇게 보입니다.왼쪽으로 연결된 테이블의 행 수를 계산합니다.
$stmt = $this->db->prepare("SELECT u.id, u.email, u.salt, u.pass, u.approved, u.ban, u2.status FROM `users` AS u LEFT OUTER JOIN `log` AS u2 ON u2.user_id = u.id WHERE u.email = ?") or die($this->db->error);
$stmt->bind_param("s", $_POST['email']) or die($stmt->error);
$stmt->execute();
$stmt->store_result();
if ($stmt->num_rows == 0) {
die($this->ajax->respond(7));
}
$data = array();
$stmt->bind_result($data['id'], $data['email'], $data['salt'], $data['pass'], $data['approved'], $data['ban'], $data['status']) or die($stmt->error);
$stmt->fetch() or die($stmt->error);
$stmt->close() or die($stmt->error);
로그 테이블의 상태 열은 사용자가 이미 로그인했는지 여부를 나타냅니다. 내가하고 싶은 일은 users
테이블에 이메일이 있는지 확인하고 log
테이블의 행 수를 status=1
으로 계산하는 것입니다. 그것은 하나의 유일한 쿼리로 가능합니까? 즉
: 여기
로그 테이블
상태 = 1이 사용자 1은 현재 로그인되어 있음을 나타냅니다 행을 살펴보십시오 다른에서 두 번째 로그인 절차를 방지하기 위해. 브라우저 사용자 테이블 (기본 로그인 절차)에서 이메일을 먼저 확인하고 그 순간 로그인하지 않았는지 확인하십시오 (로그 테이블에서 status = 1 인 행을 계산하여)
예상되는 결과를 제공 할 수 있습니까? 그냥 몇 가지 예제 데이터. 감사합니다 –
@MostyMostacho 내가 원하는 일은 간단합니다 : 변수의 로그 테이블에서 상태 = 1 행 수를 얻고 싶습니다. 이 변수> 0이 오류 메시지를 표시하고 로그인을 방지하면 로그인 프로세스가 계속됩니다. – heron