Autor Zpráva
nyllo
Profil
Zdravím...

Pokouším se sestavit navigaci s podporou SQL

kód nyní vypadá takto

//**********
// navigace
if (isset($kalendar) && !$kalendar){

    $rovno = $_GET['kalendar'];

}
else {

    $rovno = $act_date;

}

SetLocale(LC_ALL, "czech.utf-8");
$datum_day = date('d', strtotime($row['date']));
$datum_day_name = date("w", strtotime($row['date']));
$datum_mesic = date("n", strtotime($row['date']));
$day_name = array("", "Pondělí", "Úterý", "Středa", "Čtvrtek", "Pátek", "Sobota", "Neděle");
$mesice = array ("",'Leden', 'Únor', 'Březen', 'Duben', 'Květen', 'Červen', 'Červenec', 'Srpen', 'Září', 'Říjen', 'Listopad', 'Prosinec');

echo '<div>';
echo '<ul class="pager">';

//předešlí měsíc
$sqla = "SELECT * FROM `events` where date_format(`date`,'%Y-%c') < '".$rovno."' ORDER BY `events`.`date` desc LIMIT 1";
$vypisa =  mysql_query($sqla);
if (FALSE === $vypisa) {
    echo mysql_errno() . ": " . mysql_error();
}

while($row_prew = mysql_fetch_array($vypisa))
{    
    $predesli_mesic = date("n", strtotime($row_prew['date']));
    $predesli_mesic_y = date("Y", strtotime($row_prew['date']));
    
    echo '<li><a href="../akce&kalendar='.$predesli_mesic_y.'-'.$predesli_mesic.'">'.$mesice[$predesli_mesic].' '.$predesli_mesic_y.'</a></li>';

};

//aktuální měsíc
$sqlb = "SELECT * FROM `events` where date_format(`date`,'%Y-%c') = '".$rovno."' ORDER BY `events`.`date` asc LIMIT 1";
$vypisb =  mysql_query($sqlb);
if (FALSE === $vypisb) {
    echo mysql_errno() . ": " . mysql_error();
}

while($row_t = mysql_fetch_array($vypisb))
{
    $tento_mesic = date("w", strtotime($row_t['date']));
    $tento_mesic_y = date("Y", strtotime($row_t['date']));

    echo '<li><a href="../akce&kalendar='.$tento_mesic_y.'-'.$tento_mesic.'">'.$mesice[$tento_mesic].' '.$tento_mesic_y.'</a></li>';

};

//další měsíc
$sqlc = "SELECT * FROM `events` where date_format(`date`,'%Y-%c') > '".$rovno."' ORDER BY `events`.`date` asc LIMIT 1";
$vypisc =  mysql_query($sqlc);
if (FALSE === $vypisc) {
    echo mysql_errno() . ": " . mysql_error();
}

while($row_next = mysql_fetch_array($vypisc))
{    
    
    $next_mesic = date("n", strtotime($row_next['date']));
    $next_mesic_y = date("Y", strtotime($row_next['date']));

    echo '<li><a href="../akce&kalendar='.$next_mesic_y.'-'.$next_mesic.'"> '.$mesice[$next_mesic].' '.$next_mesic_y.'</a></li>';

};

echo '</ul>';
echo '</div>';

Skoro to funguje jak má ale používám proměnné volání $_GET na jednotlivé měsíce a dále pod výchozím zobrazením je aktuální měsíc.
Řeším jak ochránit aby se mi nevypsali nesmyslné měsíce které nejsou v db a pokud není definována hodnota $_GET aby se vše řídilo aktuálním měsícem.

Děkuji za každou pomoc předem.
nyllo
Profil
Vyřešeno.

if (isset($_GET["kalendar"])) {
    $rovno = $_GET["kalendar"];
} else {
    $rovno = $act_date;
}


SetLocale(LC_ALL, "czech.utf-8");
$datum_day = date('d', strtotime($row['date']));
$datum_day_name = date("w", strtotime($row['date']));
$datum_mesic = date("n", strtotime($row['date']));
$day_name = array("", "Pondělí", "Úterý", "Středa", "Čtvrtek", "Pátek", "Sobota", "Neděle");
$mesice = array ("",'Leden', 'Únor', 'Březen', 'Duben', 'Květen', 'Červen', 'Červenec', 'Srpen', 'Září', 'Říjen', 'Listopad', 'Prosinec');


//předešlí měsíc
$sqla = "SELECT * FROM `events` where date_format(`date`,'%Y-%c') < '".$rovno."' ORDER BY `events`.`date` desc LIMIT 1";
$vypisa =  mysql_query($sqla);
if (FALSE === $vypisa) {
    echo mysql_errno() . ": " . mysql_error();
}

while($row_prew = mysql_fetch_array($vypisa))
{    
    $predesli_mesic = date("n", strtotime($row_prew['date']));
    $predesli_mesic_y = date("Y", strtotime($row_prew['date']));
    
    echo '<li><a href="../akce&kalendar='.$predesli_mesic_y.'-'.$predesli_mesic.'">'.$mesice[$predesli_mesic].' '.$predesli_mesic_y.'</a></li>&nbsp;';

};

//aktuální měsíc
$sqlb = "SELECT * FROM `events` where date_format(`date`,'%Y-%c') = '".$rovno."' ORDER BY `events`.`date` desc LIMIT 1";
$vypisb =  mysql_query($sqlb);
if (FALSE === $vypisb) {
    echo mysql_errno() . ": " . mysql_error();
}

while($row_t = mysql_fetch_array($vypisb))
{
    
    $tento_mesic = date("n", strtotime($row_t['date']));
    $tento_mesic_y = date("Y", strtotime($row_t['date']));

    echo '<li><a href="../akce&kalendar='.$tento_mesic_y.'-'.$tento_mesic.'">'.$mesice[$tento_mesic].' '.$tento_mesic_y.'</a></li>&nbsp;';

};

//další měsíc
$sqlc = "SELECT * FROM `events` where date_format(`date`,'%Y-%c') > '".$rovno."' ORDER BY `events`.`date` asc LIMIT 1";
$vypisc =  mysql_query($sqlc);
if (FALSE === $vypisc) {
    echo mysql_errno() . ": " . mysql_error();
}

while($row_next = mysql_fetch_array($vypisc))
{    
    
    $next_mesic = date("n", strtotime($row_next['date']));
    $next_mesic_y = date("Y", strtotime($row_next['date']));

    echo '<li><a href="../akce&kalendar='.$next_mesic_y.'-'.$next_mesic.'"> '.$mesice[$next_mesic].' '.$next_mesic_y.'</a></li>';

};

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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