0

カテゴリごとにいくつかのブランドを表示するために、次のコードがあります。

<?
$con = mysql_connect("localhost","baba","passsss");//database connection
mysql_select_db("gr_brands_igi") or die(mysql_error());
mysql_set_charset('utf8',$con);     
$query = "SELECT * FROM brands ORDER BY category_anchor ASC, brand_anchor ASC";

$result = mysql_query($query);

$lasteventname = "";

echo "<table border='0' width='100%' cellspacing='0' cellpadding='0'>";
$cell_ctr = 0;
while($row=mysql_fetch_array($result))
{
    if($row[0] != $lasteventname){
        $title = $row[0];
        $lasteventname = $row[0];
        echo "<tr><td colspan=5><h2>$title</h2></td></tr>";
    }
    if(($cell_ctr % 5) == 4) // 2 is the number of columns
    {
        echo"</tr>";
        echo "<tr>";
        $cell_ctr = 0;
    }
  echo "<td align='justify' cellspacing='2' cellpadding='2'>";
  echo "<h3><a href='http://www.example.com/search/search.asp?txtsearch=$row[2]&catg=$row[3]&intitleanddesc=1&isnavbarsearch=1&gallery=1'>" . $row[2] . "</a></h3>";
  echo "</td>";
  $cell_ctr++;
}

if($cell_ctr == 1)
{
  echo "</tr>";
}
else if($cell_ctr == 2)
{
  echo "</tr>";
}
echo"</table>";
?>

今それはこれを表示します

宝石

  • 1 2
  • 3 4
  • 5 6
  • 7 8

しかし、私は次のように列ごとに注文したいと思います:

宝石

  • 1 5
  • 2 6
  • 3 7
  • 4 8

データベースのフィールドは次のとおりです。

category_anchor
keyword
brand_anchor
category_id

whileループが1つだけあり、$ lasteventnameを使用して、カテゴリを1回だけ出力します

何か案は?

4

1 に答える 1

2

テーブルである必要がありますか?私の考えでは、リストアイテムを使用します

<?php
    $result = mysql_query($query);
    $rows = mysql_num_rows($result);
    $i = 0;

    echo '<ul>';

    while($row=mysql_fetch_array($result))
    {
      if (($i % 4) == 0 && $i > 0) {
        echo '</ul><ul>';
      }
      echo '<li><h3>your code</h3></li>';
      $i++;
    }

    echo '</ul>';

    ?>

結果は次のようになり、テーブルのように好きなようにスタイルを設定できます

<div class="banner">
<ul>
  <li>1</li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
</ul>
<ul>
  <li>5</li>
  <li>6</li>
  <li>7</li>
  <li>8</li>
</ul>
</div>
于 2012-11-07T16:25:36.157 に答える