2012-08-05 8 views
0

여기에 문제가 있습니다. 첫 번째 선택을하면 완벽하게 작동하지만, 유니온을 반복하면 경고 메시지가 나타납니다. 경고 : mysqli_fetch_assoc()은 매개 변수 1이 mysqli_result가 될 것으로 예상합니다. C : \ bla, bla, bla.PHP MySQL 유니언 SELECT가 예상대로 작동하지 않습니다.

나는 비슷한 질문이나 문제를 찾았지만 찾지 못한 사람은이 문제를 해결할 수있는 방법을 찾지 못했습니다.

<?php 
$moncols='col1,col2,col3,col4'; 
$main = "SELECT $moncols FROM table1 WHERE col4 = 'yes' 
     UNION 
     SELECT $moncols FROM table2 WHERE col4 = 'yes' 
     UNION 
     SELECT $moncols FROM table3 WHERE col4 = 'yes' 
     UNION 
     SELECT $moncols FROM table4 WHERE col4 = 'yes' 
     UNION 
     SELECT $moncols FROM table5 WHERE col4 = 'yes'"; 
$resoult = $mon -> query($main); 
while ($row = mysqli_fetch_assoc($resoult)){ 
$myStuff=$row['col4']; 
$otherStuff=$row['col3']; 
echo $myStuff. ' - ' .$otherStuff. '<br>'; 
} 
?> 

보다의 :

+2

예를 들어 phpMyAdmin을 사용하여 쿼리를 시도 했습니까? BTW 정말'UNION' 또는'UNION ALL'을 사용하고 싶습니까? (왜'resoult'가'result'가 아닌가?) – biziclop

+0

@zombat에서 제공하는 코드를 돌리면서 에러가 발생했다. PHP MyADMIN에서 쿼리를 실행하는 것보다 열이 잘못 입력되었다. 그렇다. 그것은 철자가 틀린 열이었다, 그 밖의 모든 것은 ok이었다. .. 고맙다. –

답변

1

당신은 가능성이 쿼리에 오류가 있습니다. 테이블 중 하나에 해당 열 중 하나가 누락 된 것 같습니다. 어떤 경우이든 $resoult은 유효한 mysqli 결과가 아닙니다. 일부 오류 검사를 추가하여 문제를 찾으십시오.

$resoult = $mon->query($main); 
if (! resoult) { 
    echo "MySQL error: " . $mon->error); 
} 
+0

PHP MyADMIN에서 쿼리를 실행했고 그렇습니다. 이것이 문제였습니다. 그것은 철자가 틀린 열이었다, 그 밖의 모든 것은 ok이었다. .. 고맙다. –

관련 문제