2014-10-22 3 views
-1

나는이 질문을 stackoverflow 전체에서 보았다. 그러나 어떤 방식으로 할지라도 전혀 작동하지 않는 것처럼 보인다. 여기 내 데이터베이스에 대한 빠른 미리보기가 내 코드행이 존재하면 else update update

$result = $db->query("SELECT 1 FROM mybb_tnybracket WHERE tid = '$id' AND player1 IS NOT NULL AND player2 IS NULL"); 
if (mysqli_fetch_row($result)) { 
     $query23 = $db->query("UPDATE mybb_tnybracket SET player1 = '$uidgt' WHERE tid = '$id'  AND player2 is NULL AND player1 is NULL ORDER BY ID LIMIT 1;")or die(mysqli_error()); 
    echo "update player 1"; 
} else { 
     $query22 = $db->query("UPDATE mybb_tnybracket SET player2 = '$uidgt' WHERE tid = '$id' AND player1 IS NOT NULL AND player2 IS NULL LIMIT 1")or die(mysqli_error()); 
echo "update player 2"; 
} 

} 

을 보여줌으로써 시작하자

https://i.gyazo.com/1a2049d4a24f73bc8de3e0be84e98ec8.png

당신이 재생기를 볼 수 있고 player2 모두 널 (null)이기 때문에. 그러나 코드를 사용하면 먼저 플레이어 1을 업데이트해야합니다. 그럼 내 if 문은 플레이어 1이 값을 갖고 플레이어 2가 여전히 null 인 모든 테이블을 가져오고 있으므로 플레이어 2를 채울 수 있습니다. 그러나 이것은 일어나지 않습니다. 등록을 시도 할 때 얻는 것은 텍스트 " 업데이트 플레이어 2 "아직 아무 일도 일어나지 않습니다. 누구든지 도와 줄 수 있습니까? 난 당신이해야 할 노력하고있는 무슨 오해하지 않은 경우

+0

$ result = $ db-> query ("SELECT 1 FROM mybb_tnybracket where tid = '$ id'이고 player1은 NULL이고 player2는 NULL입니다.); – anhlc

답변

0

, 나는

$result = $db->query("UPDATE mybb_tnybracket SET player1 = '$uidgt',player2 = '$uidgt' WHERE tid = '$id' AND player2 is NULL AND player1 is NULL"); 

잘 작동합니다 간단한 쿼리를 생각합니다.

+0

정확히 내가하려고하는 것이 아닙니다. 데이터베이스가 사용자에 따라 다르기 때문에 한 번에 모두 채울 수 없습니다. 첫 번째 사용자가 가입 할 때 그는 player1 열에서 업데이트되고 두 번째 사용자가 가입 할 때마다 동일한 행의 player2 열에서 업데이트됩니다. 그러나 제 3자가 가입하면 새 행에서 player1로 업데이트됩니다. 혼란 스럽다면 죄송합니다 ... –

+0

지금 문제가 있습니다. 가장 편리한 방법은 player2에 null이있는 열이없는 경우 새 플레이어가 등록 할 때마다 새 행을 삽입하고 player2 열에 null 값이 있으면 player2 열의 새 값으로 행을 업데이트하는 것입니다. 정보가없는 null 값을 보유해야하는 이유는 무엇입니까? – geoandri