Autor Zpráva
Nat
Profil *
Zdravím v databázi mám údaje s datumem. Vypisuji je ve tvaru Datum, příspěvek, Autor

Mám tabulku a řádky odděluji barvou. To co bych chtěl je dát ještě jeden řádek nad články určitého data: Příklad:

úterý 12. 8. 2006
úterý 12. 8. 2006, Jak dělat zlého, Pepa
úterý 12. 8. 2006, Jak dělat hodného, Petr
středa 13. 8. 2006
středa 13. 8. 2006, Pepa je zlý, Jan
středa 13. 8. 2006, Jenda je hodný, Pepa
...

No a problém je že nevím jakou funkci respektive podmínku mám použít proto aby se mi datum vypsalo jen jednou. Do data mám načteny data od článků a podmínka by měla vypadat nějak takto:

když se datum článku změní vložit řádek s datem, když je stejné nevkládat.

Díky předem za nasměrování jak vytvořit tu podmínku Nat
Peca
Profil
Nějak v následujícím duchu:
$posledni=0;

while ($r=mysql_fetch_array($sql))
{
if ($posledni!=$r['datum'])
{
vypsat datum...
$posledni=$r['datum'];
}
vypsat příspěvek...
}
Nat
Profil *
Asi si úplně nerozumíme napíšu tady kus kódu jak to mám:




$k = 0;
foreach ( $items as $row ) {

$datum = $row->created; ?>

<tr class="sekce_datum" >
<td colspan="4">

<?php echo $datum; ?>

</td>
</tr>
<tr class="sekce<?php echo ($k+1); ?>" >
<?php
if ( $params->get( 'datum' ) ) {
?>
<td>
<?php echo $datum; ?>
</td>
<?php
}
if ( $params->get( 'title' ) ) {
if( $row->access <= $gid ){ ...



no a to první echo $datum potřebuji vypsat jen jednou v tomhle tvaru mi to vypíše logicky řádek datum nad každým řádkem článku ....

Nat
Peca
Profil
Rozumíme si.
Ještě před ten cyklus dej $posledni=0; Když to tam nebude, nic se nestane.
Místo $datum = $row->created; dej toto:
if ($posledni == $row->created)

$datum = "";
else
{
$posledni = $row->created;
$datum = $posledni;
}
Nat
Profil *
Díky za čas, ale nefunguje to tady je zápis, já už jsem dneska tak hotový, že tam chybu nevidím, ale abych se přiznal tak ten zápis moc nechápu a nějak usuzuji, že to ani fungovat nemůže, ale já už si připadám jak lama :-)


 


$posledni = 0;
$k = 0;
foreach ( $items as $row ) {

if ($posledni == $row->created)
$datum = "";
else {
$posledni = $row->created;
$datum = $posledni; } ?>
<tr class="sekce_datum" >
<td colspan="4">
<?php echo $datum; ?>
</td>
<tr class="sekce<?php echo ($k+1) ; ?>" >
<?php
if ( $params->get( 'date' ) ) {
?>
<td>
<?php echo $datum; ?>
</td>
<?php
}
if ( $params->get( 'title' ) ) {



Nat
Nat
Profil *
Tak už jsem to díky tvým radám na 99 procent vyřešil tady je kód:




$posledni = 0;
$k = 0;
foreach ( $items as $row ) {

if ($posledni == $row->created) {
$posledni = $row->created;
$datum = ""; ?>
<tr class="sekce_date" >
<td colspan="4">
<?php echo $datum; ?>
</td>
</tr>

<?php } else {
$posledni = $row->created;
$datum = $posledni; } ?>
<tr class="sekce_date" >
<td colspan="4">
<?php echo $datum; ?>
</td>
</tr>



má to ale jeden malinký háček (to procento). Nevypíše to první datum což je logické protože při prvním vstupu se datum nerovná proměnné poslední, ale nějak mě nenapadá jak to obejít. jestli definovat ještě nějakou proměnou a použít ji jen jednou nebo tak nějak :-)

každopádně díky za nasměrování

Nat
Toto téma je uzamčeno. Odpověď nelze zaslat.