Autor Zpráva
frauen
Profil *
Zdravím,

chtěl bych pomoci s jednou věcí. Mám seznam událostí, každá má nějaké datum. Záznamů mám již mnoho a chtěl bych je rozdělit podle roků. Má představa by byla, že by se vypsal rok a pod něj příslušné události.

Náhled:

2010:
- 01.12. - Událost 3
- 01.09. - Událost 2
- 01.04. - Událost 1

2009:
- 01.12. - Událost 3
- 01.09. - Událost 2
- 01.04. - Událost 1

Prozatím mám výpis událostí:
<?php
$query = mysql_query("SELECT `date`, `id`, `title`, `title_rewrite` FROM `gallery-events` WHERE `published` = 1 ORDER BY `id` DESC");
if(mysql_num_rows($query) > 0) {
?>
<ul id="wrap">
<?php
    while($row = mysql_fetch_array($query)) {
?>
    <li><a href="foto-video/<?php echo($row['id'] . '-' . $row['title_rewrite']); ?>/"><?php echo(date('d.m.Y', strtotime($row['date'])) . ' - ' . $row['title']); ?></a></li>
<?php
    }
?>
</ul>
<?php
} else {
?>
<p>Doposud nebyly přidány žádné události.</p>
<?php
}
?>

Chtěl bych však přidat to řazení do roků, jak je vidět v náhledu.

Děkuji mnohokrát předem.
Tori
Profil
Nedávno tu byl podobný dotaz.
frauen
Profil *
Tori:
Díky za navedení, jak bych měl postupovat, ale potřeboval bych bližší upřesnění. Jak mám vypsat (tedy i získat hodnotu pro porovnávání roku v cyklu jednotlivých událostí) nejdříve rok a pak teprve pod něj seznam (ul)? Nevím si rady, jak to dát dohromady s mým dosavadním řešením výpisu udáostí.
xmark
Profil
frauen:
Doporučil bych začít tím, že vyhážeš všechny "?>" a "<?php" a všechny texty budeš vypisovat echem. Kódu bude míň a jeho přehlednost stoupne asi o 78 %.
Chtěl jsem to zkusit vysvětlit, ale nedaří se mně to popsat, tak jsem to napsal. Snad to nejen použiješ, ale i pochopíš.

<?php
  $query = mysql_query("SELECT `date`, `id`, `title`, `title_rewrite` FROM `gallery-events` WHERE `published` = 1 ORDER BY `id` DESC");
  if(mysql_num_rows($query) > 0) {
    $rokpomocny = -1;

    while($row = mysql_fetch_array($query)) {
      $rok = date("Y", $row["date"]);
      if( $rokpomocny !== $rok) {
        if($rokpomocny>-1) {
          echo "</ul>";
        }
        echo "<h3>".$rok."</h3>";
        echo "<ul>";
      }
      echo "<li><a href='foto-video/";
      echo $row['id']."-".$row['title_rewrite'];
      echo "'>".date("d.m.Y", strtotime($row['date']))." - ".$row['title']);
      echo "</a></li>";
      $rokpomocny = $rok;
    };
    echo "</ul>";
  } else {
    echo "<p>Doposud nebyly přidány žádné události.</p>";
  }
?>

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: