2012-10-26 3 views
1

몇 가지 문제가 있습니다.내부 조인 및 동일한 쿼리에서 공백 오류가 발생하는 곳 mysql

$query = mysql_query(" SELECT player.id, player.level, character.name, 
           character.owner, character.owner 
         FROM player 
         INNER JOIN character ON player.id = character.owner 
         WHERE character.world = '$world' "); 

$res= mysql_fetch_array($query) or die(mysql_error); 
+0

MySQL Workbench에서 SQL 명령을 실행 해 보셨습니까? 거기서 작동합니까? –

+0

당신은 데이터베이스 물건에 mysqli를 사용해야합니다. 그게 더 빠르며 더 좋아요. – DijkeMark

+0

마크 나는 MySQL Workbench를 사용하려고합니다. – Kraziee

답변

3

을 당신은 mysql_error 뒤에 괄호를 누락하고 mysql_query를 호출 한 후 호출해야합니다 :

$sql = "SELECT ..."; 
$result = mysql_query($sql) or die(mysql_error()); 
이것은 단지 (I 등등 오류 PHP에 대한보고 및 시도했다) 빈 페이지를 반환 쿼리입니다

쿼리가 실패하면 오류 메시지가 표시됩니다.

mysql_query을 올바르게 사용하는 방법에 대한 자세한 내용은 설명서를 참조하십시오.

+0

여전히 공백 페이지 만 반환하고 오류 메시지는 표시되지 않지만 쿼리가 실패 할 것이라는 것을 알면 무언가를 변경하면 표시됩니다. – Kraziee

+0

입력이 거의 없으므로 Workbench에서 성공적으로 표시되지만 출력이 표시되지 않습니다. 미래에 "설명"은 "2 row (s) returned"라고 말합니다. 그러나 "나는 아무 것도 얻지 못한다."라는 문장을 실행한다. 하나의 간단한 쿼리를 시도하고 실행 된 쿼리에서 정보를 출력했습니다. – Kraziee

+0

@Kraziee : 먼저 쿼리를 WorkBench에서 작동시켜야한다고 생각합니다. 나는 당신이 아무 행도 얻지 않는 이유는 당신의 질문이 틀렸기 때문이라고 생각할 것입니다. WHERE 조건과 JOIN 조건이 맞는지 다시 확인하는 것이 좋습니다. EXPLAIN의 결과를 소금 한알로 읽어야합니다. EXPLAIN에서 가져온 행 수는 표 통계를 기반으로 한 추정치입니다. 그것들은 실제 가치가 아닙니다. –

0
$query = mysql_query(" SELECT player.id, player.level, character.name, 
          character.owner, character.owner 
        FROM player 
        INNER JOIN character ON player.id = character.owner 
        WHERE character.world = '$world' ") or die(mysql_error()); 

$res= mysql_fetch_array($query); 

이렇게하면 놓친 메시지가 표시됩니다.