категория в MySQL, отображающая его один раз - PullRequest
2 голосов
/ 28 декабря 2011

У меня есть некоторые данные в базе данных, и они выводятся с ORDER BY category, и мне было интересно, как мне отобразить категорию только один раз?

  $SQL = mysql_query("SELECT id,name,category FROM table ORDER BY category,id");

Так что мой сценарий выполняет итерации по таблице и сортируетвсе элементы по названию категории.

Я хочу иметь возможность отображать название категории один раз, чтобы остальные значения могли попадать в эту категорию

В настоящее время у меня есть что-то подобное

while($r = mysql_fetch_array($SQL){
  $name = $r['name'];
  $category = $r['category'];

  echo $category; //I want to be able to echo this once
  echo $name; // this will be echoed many times depending on the category this falls into
}

Ответы [ 2 ]

4 голосов
/ 28 декабря 2011
$category = null;
while($r = mysql_fetch_array($SQL){
  $name = $r['name'];

  if ($category != $r['category']) {
      $category = $r['category'];

      echo $category; //I want to be able to echo this once
  }
  echo $name; // this will be echoed many times depending on the category this falls into
}
3 голосов
/ 28 декабря 2011

Сделайте что-то вроде:

$prev_category = "";
while($r = mysql_fetch_array($SQL){
  $name = $r['name'];
  $category = $r['category'];

  if($prev_category != $category)
       echo $category;
  echo $name; 
  $prev_category = $category;
}

Таким образом, вы напечатаете новую категорию, только если она изменилась

...