2013-08-13 3 views
0

을 가지고 있으며, 여기에 나는 "gallery_kategori"디스플레이 이미지 지금

오류가 나타나고 다음과 같이 설명 갈리아의 카테고리의 ID해야한다는 등의 준비 과정에서 오전 : 오류 2 : 밖으로 명령 sync; 이 명령을 지금 실행할 수 없습니다.

내가 원하는 것 : - 갤러리에 들어가서 카테고리 또는 영역보다 속하는 사진을 찍고 싶습니다. - 항상 함께 있어야하는 것은 아니며 각 이미지에 대해 한 번에 하나의 이미지 여야합니다. 당신이 그 연결을 첫 번째 결과를 해제하지 않았기 때문에 코드로 장난 일부 후

function galleryKategori() 
{ 
    if ($st = $this->mysqli->prepare('SELECT id, title FROM gallery_kategori')) { 
     $st->execute(); 
     $st->bind_result($id, $title); 
     while ($st->fetch()) { 
     ?> 
     <a href="/galleri-indhold/<?php echo $id;?>/"> 
      <div class="galleryKategori"> 
       <h4><?php echo $title;?></h4> 
       <?php 
        if ($stmt = $this->mysqli->prepare('SELECT rank, img FROM gallery WHERE kategori = ?')) { 
         $stmt->bind_param('i', $kategori); 
         $kategori = $id; 
         $stmt->execute(); 
         $stmt->bind_result($rank, $img); 
         while ($stmt->fetch()) { 
          if($rank == 2) 
          { 

          } 
         } 
         $stmt->close(); 
        } else { 
         echo 'Error 2: ' . $this->mysqli->error; 
        } 
       ?> 
      </div> 
     </a> 
     <?php 
     } 
     $st->close(); 
    } 
    else { 
     echo 'Error 1: ' . $this->mysqli->error; 
    } 
} 

EIDT 버전은

function galleryKategori() 
{ 
    $st->free_result(); 
    if ($st = $this->mysqli->prepare('SELECT id, title FROM gallery_kategori')) { 
     $st->execute(); 
     $st->bind_result($id, $title); 
     while ($result->fetch()) { 
     ?> 
     <a href="/galleri-indhold/<?php echo $id;?>/"> 
      <div class="galleryKategori"> 
       <h4><?php echo $title;?></h4> 
       <?php 
        if ($stmt = $this->mysqli->prepare('SELECT rank, img FROM gallery WHERE kategori = ?')) { 
         $kategori = $id; 
         $stmt->bind_param('i', $kategori); 
         $stmt->execute(); 
         $stmt->bind_result($rank, $img); 
         while ($stmt->fetch()) { 
          if($rank == 2) 
          { 
           echo "Hey"; 
          } 
         } 
         $stmt->close(); 
        } else { 
         echo 'Error 2: ' . $this->mysqli->error; 
        } 
       ?> 
      </div> 
     </a> 
     <?php 
     } 
     $st->close(); 
    } 
    else { 
     echo 'Error 1: ' . $this->mysqli->error; 
    } 
} 
+0

$ kategori = $ id를 사용해보실 수 있습니까? $ stmt-> bind_param ('i', $ kategori);를 호출하기 전에; – Jason

+0

@ Jason 작동하지 않을 수도 있습니다 : ( –

답변

0

, 그것은이다.

당신은이 라인 전에 $st->free_result();를 호출 할 수있는 방법으로 두 MySQLi 객체를 사용하거나 코드를 다시 작성해야합니다

:

$stmt = $this->mysqli->prepare('SELECT rank, img FROM gallery WHERE kategori = ?') 

있다는 것이 내게했다 모두가 제대로 작동해야합니다.

편집 08/14/13 : 당신이 물어 때문에, 나는이 기능을 제거했을

및 인라인의 혼합을 위해 간 (이 그것처럼 보이지 않는 개체가 아닌 경우) 그리고 PHP를 차단하십시오. 나는 당신이 코드로 무엇을 할 것인지에 대해 몇 가지 자유를 가져 왔지만, 여기에는 작은 예제가있다. 결과를 배열에 저장하고 결과를 해제하고 동일한 명령문 객체를 다시 사용합니다.

<?php 
    if(($st = $mysqli->prepare('SELECT id, title FROM gallery_kategori')) !== FALSE) { 

     $st->execute(); 
     $st->bind_result($id, $title); 

     while($st->fetch()) { 
      $categories[$id] = $title; 
     } 
     $st->free_result(); 
     unset($id, $title); 
    } 
    else { 
     echo 'Error 1: ' . $mysqli->error; 
    } 
?> 
<?php if(count($categories) > 0): ?> 
    <?php foreach($categories as $id => $title): ?> 
     <div class="galleryKategori"> 
      <h4> 
       <a href="/galleri-indhold/<?php echo $id; ?>/"> 
        <?php echo $title; ?> 
       </a> 
      </h4> 
      <?php 
       if(($st = $mysqli->prepare('SELECT rank, img FROM gallery WHERE kategori = ?')) !== FALSE) { 

        $st->bind_param('i', $id); 
        $st->execute(); 
        $st->bind_result($rank, $img); 

        while($st->fetch()) { 
         $gallery[$rank] = $img; 
        } 
        $st->free_result(); 
        unset($rank, $img); 
       } 
       else { 
        echo 'Error 2: ' . $mysqli->error; 
       } 
      ?> 
      <?php if(count($gallery) > 0): ?> 
       <ul> 
        <?php foreach($gallery as $rank => $img): ?> 
         <li class="gallery rank-<?php echo $rank; ?>"> 
          <a href="/galleri-indhold/<?php echo $id; ?>/"> 
           <img src="<?php echo $img; ?>" alt="Image <?php echo $rank; ?>" /> 
          </a> 
         </li> 
        <?php endforeach; ?> 
       </ul> 
      <?php else: ?> 
       <ul> 
        <li>There are no images in this category.</li> 
       </ul> 
      <?php endif; ?> 
     </div> 
    <?php endforeach; ?> 
<?php else: ?> 
    <p>Category Does Not Exist.</p> 
<?php endif; ?> 
<?php $mysqli->close(); ?> 



노트

  • 재구성하여 HTML 요소, 인라인 요소 (앵커) 블록 요소를 포함 할 수 없습니다 (DIV). 위의 코드를 적절히 표시하도록 업데이트했습니다.
+0

) 위로 코드를 추가하십시오 : 코드가 지저분하다면 어떻게할까요? –

+0

내 대답에 내 코드를 추가했습니다. SE의 자원 봉사자가 rep의 형태로 도움말을 작성합니다.). 문제가 가장 잘 해결되면 답을 선택하는 것을 잊지 마십시오. – Jason