Autor Zpráva
nyllo
Profil
Zdravím.
Potřeboval bych poradit jak upravit tento výpis

if($_GET['kalendar']){
    $query = "SELECT * FROM `events` WHERE date_format(`date`,'%Y-%c')='".intval($_GET['kalendar']) ;
}

potřeboval bych tam dosadit něco v podobě tohoto ->
Nejsem si jist zda je tento formát možný
where date_format(`date`,'%Y-%c') = '$_GET['kalendar']' ORDER BY `events`.`date` ASC
Taps
Profil
nyllo:
if($_GET['kalendar']){
$kalendar= intval($_GET['kalendar']);
    $query = "SELECT * FROM `events` WHERE date_format(`date`,'%Y-%c')='$kalendar' ORDER BY events, date ASC") ;
}
nebo
$query = "SELECT * FROM `events` WHERE date_format(`date`,'%Y-%c')='".intval($_GET['kalendar']."' ORDER BY events, date ASC") ;
nyllo
Profil
Ta první verze by v celku fungovala bohužel nebere mi formát 2014-1 ale pouze 2014
Taps
Profil
nyllo:
asi budeš muset vyhodit ten intval
<?
$kalendar= $_GET['kalendar'];
?>
nyllo
Profil
můžu mít toto ??

if($_GET['clanek']){
    $query = "SELECT * FROM `events` WHERE id=".intval($_GET['clanek']);
}

if($_GET['kalendar']){
    $query = "SELECT * FROM `events` WHERE date_format(`date`,'%Y-%c')='".intval($_GET['kalendar']);
}

else{
    $query = "SELECT * FROM `events` where date_format(`date`,'%Y-%c') = '".$act_date."' ORDER BY `events`.`date` ASC LIMIT ".$start.", ".$prispevku;
}



finální funkčnost kalendáře ještě doladím.
peta
Profil
nyllo:
Zkus udelat echo quesry a to query podstrcit do phpmyadmina.
$query = "SELECT * FROM `events` WHERE date_format(`date`,'%Y-%c')='".intval($_GET['kalendar']);
Tady ti schazi uvozovka.
Taps
Profil
nyllo:

$query = "SELECT * FROM `events` WHERE date_format(`date`,'%Y-%c')=".intval($_GET['kalendar']);
nyllo
Profil
aby vůbec nedělal problém výpis
Kajman
Profil
nyllo:
Řetězec s pomlčkou získaný přes date_format se přeci nemůže nikdy rovnat číslu vzniklému díky intval.

Lepší bude nachystat hranice toho měsíce a ty použít ve where, pokud na tom sloupci date bude index, bude to výrazně rychlejší. Tedy vygenerovat např.

where `date` between '2014-02-01' and '2014-02-28 23:59:59'
nyllo
Profil
ono to vypisuje akce konající se např v Lednu 2014.. ale potřebuji to přepínat a volat podrobnosti jednotlivých akcí
peta
Profil
nyllo: Ta akce ma id, ktere je typu INT, to najde mnohem rychleji nez datum.
Navic, bys to mohl pro vsechny zobrazene akce naJOINovat primo do predchoziho dotazu. Nebo, kdyz us teda dalsi dotaz, tak vybrat vsechny a pri dalsim kliku uz nevolat zbytecne server, ale pouze js.
nyllo
Profil
tak to raději vysvětlím jak to má fungovat...

1) Výchozí výpis vypíše akce pro aktuální měsíc.
2) Dále má být přepínání mezi měsíci pro vypsání akcí které se budou konat další měsíc. (Případně akce uběhlé)
3) Vypsání podrobností o akci.
Taps
Profil
nyllo:
1)
<?
list($mesic,$rok) = explode('.',$_GET['kalendar']);
$query = "SELECT * FROM events WHERE MONTH(date)='".intval($mesic)."' AND YEAR(date')='".intval($rok)."'";
?>
2) viz výše uvedený příkaz
nyllo
Profil
výpis mám tvořen takto


if($_GET['info']){
    $query = "SELECT * FROM `events` WHERE id=".intval($_GET['info']);
}

$kalendar = $_GET['kalendar'];
if($_GET['kalendar']){
    $query = "SELECT * from `events` WHERE date_format(`date`,'%Y-%c')= '$kalendar' ORDER BY `events`.`date` ASC ";
}

else{
    $query = "SELECT * FROM `events` where date_format(`date`,'%Y-%c') = '".$act_date."' ORDER BY `events`.`date` ASC LIMIT ".$start.", ".$prispevku;
}

$vypis =  mysql_query($query);
if (FALSE === $vypis) {
    echo mysql_errno() . ": " . mysql_error();
}

if (mysql_num_rows($vypis) === 0) {
    echo '<p class="color_white">Nejsou naplánovány žádné další události.</p>';
} else {
while($row = mysql_fetch_array($vypis))
{
    
    if($_GET['clanek'])
        
        {

        //Výpis datumů //
        $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', 'Listipad', 'Prosinec');

        
        echo '<div id="page_box" class="col-md-12">';
        //článek
        
        echo '<div class="col-md-4">';
            echo '<div class="fadeInRightBig">';
            
            echo '<div class="events_date_page">';
            echo '<div class="date-event-single">';
            
            echo '<div>'.$day_name[$datum_day_name].'/'.$datum_day.'/'.$mesice[$datum_mesic].'</div>';
            
            echo '</div>';
            echo '</div>';
                    
            echo '</div>';
        echo '</div>';
        
        
        echo '<div class="col-md-8">';
            echo '<div class="fade_event">';
            
            echo '<div class="events_date_page">';
                echo '<div class="evetns_descript"><h3>'.$row["title"].'</h3></div>';
                echo '<hr>';
                echo ''.$row["popis"].'';
            
            echo '</div>';
            
            echo '</div>';
        echo '</div>';
        //konec článku
        
        echo '<br />';
        
        echo '<div class="col-md-12 events_date_page_2">';
            
            echo '<div>'; //demo
                echo 'Link události <a href="https://www.facebook.com/events/289110027909253">https://www.facebook.com/events/289110027909253</a>'; //demo
            echo '</div>'; //demo
        
        echo '</div>';

        echo '</div>';

    }
    else{


    //Výpis datumů //

    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', 'Listipad', 'Prosinec');


    

    echo '<div id="events_block">';
    echo '<div id="events_box_block">';
    echo '<div id="events_date">';
    echo '<p class="events_color">'.$day_name[$datum_day_name].'<br><strong class="events_day">'.$datum_day.'</strong><br>'.$mesice[$datum_mesic].'</p>';
    echo '</div>';
    echo '<div id="events_images">';
    echo '<a href="index.php?stranka=akce&info='.$row["id"].'" class="events_title">';
        echo '<img src="'.$row["img"].'" width="71px" height="107px" alt="'.$row["title"].'">';
        echo '</a>'; 
    echo '</div>';
    echo '<div id="events_text_right">';
    echo '<div class="evetns_descript"><a href="index.php?stranka=akce&info='.$row["id"].'" class="events_title">'.$row["title"].'</a></h3>';
    echo '<p>';
    echo ''.$row["popis"].'';
    echo '</p>';
    echo '</div>';
    echo '</div>';
    echo '</div>';

    echo '</br>';
        }
    }
};


Výsledky:
http://ncms.8u.cz/index.php?stranka=akce
kalendar -> http://ncms.8u.cz/index.php?stranka=akce&kalendar=2014-1
http://ncms.8u.cz/index.php?stranka=akce&kalendar=2014-2
článek -> http://ncms.8u.cz/index.php?stranka=akce&info=5


problém je ve výpisu informací o akci -> http://ncms.8u.cz/index.php?stranka=akce&info=5

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: