Birden fazla MySQL Sonuçları ile dönüşümlü CSS Stil

5 Cevap php

Birisi kendi konumu x ürün arar ve site sonuçların listesini geri tükürür bir site var.

if(isset($_POST['zip'])){
$qry="SELECT business_id FROM ".TBL_BUSINESS." WHERE zip LIKE '%".$_POST['zip']."%'";
$rs = mysql_query($qry);

$rec = array();

while(($row = mysql_fetch_array($rs)) !== FALSE ){
	$rec[] = $row[0];
}

if(!empty($rec[0])){

	echo "Products for this location<br/>";

	foreach ($rec as $result)
	{
		$bid = $result;
		$qry2 = "SELECT * FROM products WHERE business_id = '".$bid."'";
		$rs2 = mysql_query($qry2);
		$rec2 = mysql_fetch_array($rs2);
		?>
			<div class="norm">
				<img src="admin/product/img/<?php echo $rec2['image']; ?>" height="40" width="40" />
				<h3><a href="product.php?id=<?php echo $rec2['id']; ?>"><?echo $rec2['name'];?>&nbsp;&nbsp;<?php echo $rec2['prodvalue']?></a></h3>
				<div class="prodlistMeta">
					<a class='view' href="product.php?id=<?php echo $rec2['id']; ?>">View Product</a>
					<a class="print" href="#">Print</a>
				</div>
			</div>
		<?php
	}
}
else
{
	echo "No Product is added for this location";
}

} ?>

Ne ile <div class="norm"> geçiş yapmak için en iyi yol olacağını <div class="alt">?

5 Cevap

Bir sayacı tutmak ve sınıf "norm" ya da "alt" olması gerektiğini belirlemek için değeri 2 modülüne bulunuyor kullanın.

 $rec2 = mysql_fetch_array($rs2);
 $count++;
   ?>
      <div class="<?php echo($count%2?"norm":"alt"); ?>">

Ben böyle bir şey kullanmak eğilimindedir:

$row = 0;
foreach ($rec as $result) {
  $class = $row++ & 1 == 1 ? 'alt' : 'norm';
  ...
  echo <<<END
<div class="$class">
...
END;
}

Sen dize içindeki ifadeyi yapmak için kaşlı ayraçlar kullanabilirsiniz ama genellikle mantık bu tür embed tercih. Bu (imho) okumak için biraz daha zor. Artı yukarıdaki vb, daha kolay hata ayıklama amaçları için çıktı bunu size fırsat verir

çıkış döngü bir sayaç ayarlayın. Sayaç bile, normal sınıf ayarlanır zaman, başka alternatif olarak ayarlayın.

Neden modülü ve bir satır kimliği kullanmak değil mi? Çok daha basit, gereksiz değişkenler için gerek

foreach ($rec as $rid => $result)
{
    $bid = $result;
    $qry2 = "SELECT * FROM products WHERE business_id = '".$bid."'";
    $rs2 = mysql_query($qry2);
    $rec2 = mysql_fetch_array($rs2);
    ?>
            <div class="<?=($rid % 2 == 0) ? 'norm' : 'alt' ?>">
                    <img src="admin/product/img/<?php echo $rec2['image']; ?>" height="40" width="40" />
                    <h3><a href="product.php?id=<?php echo $rec2['id']; ?>"><?echo $rec2['name'];?>  <?php echo $rec2['prodvalue']?></a></h3>
                    <div class="prodlistMeta">
                            <a class='view' href="product.php?id=<?php echo $rec2['id']; ?>">View Product</a>
                            <a class="print" href="#">Print</a>
                    </div>
            </div>
    <?php
}