2012-03-23 42 views
1

我有一個簡單的MySQL查詢while循環。我需要的是在每個第二次輸入後將<div id="bigdivider"></div>更改爲<div id="productdivider"></div> 這可能嗎?或者我需要一些功能來執行該任務?在mysql查詢中的前兩位插入不同的行

query="select * FROM prekes"; 
mysql_query("SET NAMES 'UTF8'"); 
$rt=mysql_query($query);   
echo mysql_error(); 
while($laukelis=mysql_fetch_array($rt)){ 
    $id=$laukelis['id']; 
    $pavadinimas=$laukelis['preke']; 
    $gamintojas=$laukelis['gamintojas']; 
    $kaina = $laukelis['kaina']; 
    $data = $laukelis['data']; 
    $foto = $laukelis['foto']; 
    $nuoroda = 'info.php'; 
     if (isset ($_SESSION['user'])){ 
echo '<div id="pro"><a href="#"><h1>'.$gamintojas.' "'.$pavadinimas.'"</h1></a><img class="float-left" src="prekiu_foto/'.$foto.'"width="187" height="134" alt="" /><p>Kaina: '.$kaina.'lt</p><a href="#" id="buyit"></a></div><div id="bigdivider"></div>'; 
}else{ 
echo '<div id="pro"><a href="#"><h1>'.$gamintojas.' "'.$pavadinimas.'"</h1></a><img class="float-left" src="prekiu_foto/'.$foto.'"width="187" height="134" alt="" /><p>Kaina: '.$kaina.'lt</p></div><div id="bigdivider"></div>'; 
} 
} 

回答

1

這是通過你的語言,無論您是想交換的div每隔一行,或者使用productdivider每三排有點混亂。下面是一個使用計數器和不同的div之間交換後者的一個例子:

// use a counter 
$i = 0; 
while (...) { 
    // first and second of three is bigdivider 
    if ($i % 3 < 2) 
     $divcode = '<div id="bigdivider"></div>'; 
    // after every second one, use productdivider instead 
    else 
     $divcode = '<div id="productdivider"></div>'; 

    ... 
    // replace div part with $divcode 
    // obviously use all your other logic still, this is just a sample 
    echo '...<a href="#" id="buyit"></a></div>'. $divcode 
    ... 

    // increment the counter 
    $i++; 
} 
+0

謝謝你,它的工作完美:

即使在使用布爾變量如下面的代碼,你可以使用這種方法。 – 2012-03-23 19:44:56

0

添加一個變量,跟蹤無論是第一或第二(如果測試無論是第一還是第二,那麼你可以使用布爾變量,否則使用整數計數器),並根據變量執行if/else。

該變量應在循環之前初始化,然後切換循環的每次迭代的值。

或者您也可以通過subsituting的「for」循環while循環採取一種替代方法,如下面的代碼:

for($i = 1;$laukelis=mysql_fetch_array($rt);i++) 

然後在代碼中使用模運算來測試它是否第二次迭代。

for($is_even=false;$laukelis=mysql_fetch_array($rt);$is_even=!$is_even)