Изваждане на резултати с while и if

qazxsw

Registered
Това е кода който имам:

Код:
		<?php
		$query = mysql_query("SELECT * FROM portfolio");
		$i = 0;
		while($row = mysql_fetch_array($query)){
		echo "
			<div class='one_third'>
				<div class='image_loader'>
					<div class='portfolio_img_holder'>
						<div class='loading_gallery'></div>
						<a class='load_portfolio_img' rel='lightbox[portfolio]' href='".$row['id']."'>
						<span class='rm_img noscript'><img src='".$row['image_small']."' alt='' /></span>
						<span class='roll_over rollover'></span></a>
					</div>
					</div>
				<div class='clearboth'></div>
			</div>";
			$i++;
			
				if($i == 2){
				echo "
			<div class='one_third last'>
				<div class='image_loader'>
					<div class='portfolio_img_holder'>
						<div class='loading_gallery'></div>
						<a class='load_portfolio_img' rel='lightbox[portfolio]' href='".$row['id']."'>
						<span class='rm_img noscript'><img src='".$row['image_small']."' alt='' /></span>
						<span class='roll_over rollover'></span></a>
					</div>
					</div>
				<div class='clearboth'></div>
			</div>";
			$i = 0;}}
		?>

Скрипта трябва да извади от базата данни снимки в галерия, като след всяка втора снимка изкарва DIV с клас LAST. В базата данни имам за момента 4 записа и ето какво се получава: http://prikachi.com/images/486/2614486w.jpg

Номерата започват така:
1 2 2
3 4 4

тоест записите които изкарва от if-а са същите каквито и в while-a. Как мога да направя така, че когато изпълнява if-a просто да продължи с другият запис а да не ги повтаря?
 
Код:
<?php 
      $query = mysql_query("SELECT * FROM portfolio"); 
      $i = 0; 
      while($row = mysql_fetch_array($query)){ 
      echo " 
         <div class='one_third'> 
            <div class='image_loader'> 
               <div class='portfolio_img_holder'> 
                  <div class='loading_gallery'></div> 
                  <a class='load_portfolio_img' rel='lightbox[portfolio]' href='".$row['id']."'> 
                  <span class='rm_img noscript'><img src='".$row['image_small']."' alt='' /></span> 
                  <span class='roll_over rollover'></span></a> 
               </div> 
               </div> 
            <div class='clearboth'></div> 
         </div>"; 
          
            if($i % 2 == 0){ 
            echo " 
         <div class='one_third last'> 
            <div class='image_loader'> 
               <div class='portfolio_img_holder'> 
                  <div class='loading_gallery'></div> 
                  <a class='load_portfolio_img' rel='lightbox[portfolio]' href='".$row['id']."'> 
                  <span class='rm_img noscript'><img src='".$row['image_small']."' alt='' /></span> 
                  <span class='roll_over rollover'></span></a> 
               </div> 
               </div> 
            <div class='clearboth'></div> 
         </div>"; 
         }
       $i++;
} 
      ?>

Така?
 
Я обясни пак LAST DIV-a какво всъщност трябва да съдържа ? Иначе можеш да пробваш нещо подобно

Код:
while(){
     if($i % 2 == 0){
              NORMAL DIVS
               if($j % 2 == 0){
                       LAST DIV
               }
     }
}

Или пък...

Код:
$i = 0;
$j = 0;
while(){
       if($i % 2 == 0){
              NORMAL DIV
              $j++;
       }

       if($j % 2 == 0){
              LAST DIV
      }
      $i++;
}
 
Значи при първото което си ми дал се получава: 1 1, 2 2, 3 3, 4 4 (тоест всеки резултат се повтаря по 2 пъти).

При второто което си ми дал става така - 1 , 3 3 , 4 (пропуска второто).

Това е LAST Div-a:

Код:
         <div class='one_third last'>
            <div class='image_loader'>
               <div class='portfolio_img_holder'>
                  <div class='loading_gallery'></div>
                  <a class='load_portfolio_img' rel='lightbox[portfolio]' href='".$row['id']."'>
                  <span class='rm_img noscript'><img src='".$row['image_small']."' alt='' /></span>
                  <span class='roll_over rollover'></span></a>
               </div>
               </div>
            <div class='clearboth'></div>
         </div>

А това е обикновенният DIV:

Код:
       <div class='one_third'>
            <div class='image_loader'>
               <div class='portfolio_img_holder'>
                  <div class='loading_gallery'></div>
                  <a class='load_portfolio_img' rel='lightbox[portfolio]' href='".$row['id']."'>
                  <span class='rm_img noscript'><img src='".$row['image_small']."' alt='' /></span>
                  <span class='roll_over rollover'></span></a>
               </div>
               </div>
            <div class='clearboth'></div>
         </div>

Не очаквах, че ще е толкова сложно това :!:
 
То не е сложно, но просто не ми се пускаше сървъра да пробвам, защото сега ти говоря на представи. Ако до утре никой не ти е помогнал, като се прибера от даскало ще го видя по-обстойно и ще пробвам.
 
relax15pyt каза:
То не е сложно, но просто не ми се пускаше сървъра да пробвам, защото сега ти говоря на представи. Ако до утре никой не ти е помогнал, като се прибера от даскало ще го видя по-обстойно и ще пробвам.

Благодаря ти, ще почакам ако трябва не ми е спешно :) :?:
 
Ако ще е само един клас разликата (понеже аз друга не видях сякаш)
<?php
$query = mysql_query("SELECT * FROM portfolio");
$i = 1;
while($row = mysql_fetch_array($query)){
echo "
<div class='one_third ".($i % 2 == 0 ? 'last' : '')."'>
<div class='image_loader'>
<div class='portfolio_img_holder'>
<div class='loading_gallery'></div>
<a class='load_portfolio_img' rel='lightbox[portfolio]' href='".$row['id']."'>
<span class='rm_img noscript'><img src='".$row['image_small']."' alt='' /></span>
<span class='roll_over rollover'></span></a>
</div>
</div>
<div class='clearboth'></div>
</div>";
$i++;
}
?>
 
Код:
<?php
      $query = mysql_query("SELECT * FROM portfolio");
      $i = 0;
      while($row = mysql_fetch_array($query)){
      if ($i % 2){$class = "";}else{$class="last";}
      echo "
         <div class='one_third ".$class."'>
            <div class='image_loader'>
               <div class='portfolio_img_holder'>
                  <div class='loading_gallery'></div>
                  <a class='load_portfolio_img' rel='lightbox[portfolio]' href='".$row['id']."'>
                  <span class='rm_img noscript'><img src='".$row['image_small']."' alt='' /></span>
                  <span class='roll_over rollover'></span></a>
               </div>
               </div>
            <div class='clearboth'></div>
         </div>";
         $i++;
      }
?>
 
Replace каза:
Ако ще е само един клас разликата (понеже аз друга не видях сякаш)
<?php
$query = mysql_query("SELECT * FROM portfolio");
$i = 1;
while($row = mysql_fetch_array($query)){
echo "
<div class='one_third ".($i % 2 == 0 ? 'last' : '')."'>
<div class='image_loader'>
<div class='portfolio_img_holder'>
<div class='loading_gallery'></div>
<a class='load_portfolio_img' rel='lightbox[portfolio]' href='".$row['id']."'>
<span class='rm_img noscript'><img src='".$row['image_small']."' alt='' /></span>
<span class='roll_over rollover'></span></a>
</div>
</div>
<div class='clearboth'></div>
</div>";
$i++;
}
?>

Стана! +1
 

Back
Горе