我有一个简单的MySQL查询while循环。我需要的是在每次第二次更改后<div id="bigdivider"></div>
更改为<div id="productdivider"></div>
可能吗?或者我需要一些功能来执行该任务?
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>';
}
}
答案 0 :(得分: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++;
}
答案 1 :(得分:0)
添加一个变量,它将跟踪它是第一个还是第二个(如果测试它是第一个还是第二个,那么你可以使用一个布尔变量,否则使用一个整数计数器),然后根据它做一个if / else变量
变量应该在循环之前初始化,然后为循环的每次迭代切换值。
或者您可以通过将while循环替换为“for”循环来采取替代方法,如下面的代码所示:
for($i = 1;$laukelis=mysql_fetch_array($rt);i++)
然后在代码中使用模运算符来测试它是否是第二次迭代。
即使在使用布尔变量时也可以使用此方法,如下面的代码所示:
for($is_even=false;$laukelis=mysql_fetch_array($rt);$is_even=!$is_even)