2012-05-22 3 views
0

저는 완전히 당황하고 있습니다. 내 전체 페이지 코드가 아래에 있습니다.mysqli를 가져올 수 없습니다 ... 객체가 아닌 객체에서 fetch_assoc() 멤버 함수를 호출하십시오.

원래 페이지의 맨 위에 header.php, sidebar, topMenuBar, & mainContentShell이 ​​포함되어 있었고 첫 번째 쿼리가 실행 된 후 두 번째 쿼리가 실행되었습니다. 모든 것이 효과가있었습니다. 내 첫 쿼리는 다르지만 ... $ _GET [ 'stone'] 수가 0보다 크고 select max (StoneID)보다 적음을 확인했지만 다른 사람이 직접 StoneID를 입력하면 오류가 발생할 수 있습니다. 돌을 인벤토리에서 삭제했습니다. $ _GET 유효성 검사 계획을 개정하고 포함 된 파일 위로 옮겨서 header() 리디렉션이 제대로 작동하도록했습니다. 자, 두 번째 쿼리는 완전히 변경되지 않더라도 작동하지 않습니다.

위해서 var_dump ($ querySN) 수율 문자열 (53) "에서 stonetypes StoneName을 선택 여기서 StoneID = '1'"및위해서 var_dump ($ resultSN) 수율 NULL. 상태 : 35 줄에서 오류가 발생했습니다 --- $ resultSN = $ db-> query ($ querySN); 여러 번 상태 : mysqli를 가져올 수 없습니다. 여러 번 상태 : 속성 액세스가 아직 허용되지 않습니다. 상태가 결론적입니다. 36 행의 개체가 아닌 경우 fetch_assoc() 멤버 함수를 호출하십시오. --- $ rowSN = $ resultSN-> fetch_assoc();

여기에서 무슨 일이 벌어지고 있고 어떻게 고칠 수 있는지 아는 사람이 있습니까? 페이지 코드는 다음과 같습니다. 감사!!! MySQL은 캐스트해야하기 때문에

<?php 
require('./inc/config.inc.php'); 

$stone = (INT)$_GET['stone']; 

require(MYSQL1); 

$queryCk = "select StoneID from stonetypes"; 
$resultCk = $db->query($queryCk); 
$var = array(); 
while ($rowCk = $resultCk->fetch_assoc()){ 
    $var[] = $rowCk['StoneID']; 
} 

if(!in_array($stone, $var)) { 
    header('Location: beadgallery.php?type=stones'); 
    exit; 
} else { 


include('inc/header.inc.php'); 
include('inc/sidebar.inc.php'); 
include('inc/topMenuBar.inc.php'); 
include('inc/mainContentShell.inc.php'); 
?> 

<div id="mainContent"> 
<div class="center"> 

<?php 


      $querySN = "select StoneName from stonetypes where StoneID = '$stone' "; 
      $resultSN = $db->query($querySN); 
      $rowSN = $resultSN->fetch_assoc(); 

       echo '<table id="cartDisplayTable">'; 
       echo '<tr>'; 
       echo '<td colspan="2">'; 
         echo '<table id="titleTable">'; 
         echo '<tr>'; 
          echo '<td id="stoneTitle">'; 
          if (isset($rowSN['StoneName'])){ 
          echo '<h2>'.ucwords($rowSN['StoneName']).'</h2>';} 
          echo '</td>'; 
         echo '</tr>'; 

      $query = "select * from organized_inventory2 where StoneID = '$stone' "; 
      $result = $db->query($query); 

      $num_beadItems = $result->num_rows; 
       $justused='abc'; 
       for ($i=0; $i < $num_beadItems; $i++) { 
        $row = $result->fetch_assoc(); 

        if (!isset($row['itmphoto'])) { 
            echo '</table>'; 
         echo '</td>'; 
         echo '</tr>'; 

         echo '<tr><td colspan="2"><hr id="cartDivider"></td></tr>'; 

         echo '<tr>'; 
         echo '<td id="cartImgCell">'; 
         echo '<img src="img/nophoto.gif">'; 
         echo '</td>'; 
         echo '<td id="cartInfoCell">'; 
          echo '<table id="innerTable">'; 
            include ('inc/stoneCartInfo.inc.php'); 

        } elseif ($row['itmphoto'] == $justused) { 
           echo '<tr><td colspan="2"><hr id="itemDivider"></td></tr>'; 
            include ('inc/stoneCartInfo.inc.php'); 

        } else { 

            echo '</table>'; 
         echo '</td>'; 
         echo '</tr>' 
         ; 

        echo '<tr><td colspan="2"><hr id="cartDivider"></td></tr>' 
        ; 
        echo '<tr>'; 
        echo '<td id="cartImgCell">'; 

         echo '<img src="img/invent/'.$row['itmphoto'].'">'; 
         $justused = $row['itmphoto']; 

         echo '</td>'; 
         echo '<td id="cartInfoCell">'; 
          echo '<table id="innerTable">'; 
            include ('inc/stoneCartInfo.inc.php');     } 
        } 

            echo '</table>' 
            ; 
         echo '</td>'; 
         echo '</tr>' 
         ; 

       echo '</table>' 
       ; 
      } 
       $result->free(); 
       unset($result); 
      $db->close(); 


     ?> 

    </div> <!-- div class="center" --> 

</div> <!-- div id="mainContent" --> 
+0

다른 조건 닫기 중괄호가 없거나 여기에 언급하지 않았 음을 확인 했습니까? –

답변

1

정수가 StoneID = '1'에서와 같이 값 주위되지 태어나 따옴표를 수행 이것이 문제이어야한다.

"$ result"에 포함 된 내용을 확인하지 않았습니다. 부울 값이면 쿼리가 실패하고 mysqli_error의 출력을 확인해야합니다.

관련 문제