Autor Zpráva
Lucyk
Profil
Ahoj,

prosím zkušené o radu, neboť netuším kde dělám chybu.

Mám následující tabulku
rocnik | skola | trida | jmeno | prijmeni
99 | SOS | Prvni | Adam | Novak
99 | SOS | Prvni | Roman | Dub
99 | SOS | Druha | Jiri | Hok
99 | SOS | Druha | Oldrich | Mach
00 | SOU | Prvni | Maxim | Petere
00 | SOU | Prvni | Olin | Mimi
00 | SOU | Druhy | Oskar | Kok
00 | SOU | Druhy | Petr | Mnich
00 | SOS | Prvni | Jiri | Zelenka
00 | SOS | Prvni | Robert | Baka
00 | SOS | Druhy | Milan | Nedoka

A touto tabulkou bych chtěla pracovat v rámci jedné stránky, např. index.php

Tzn.
1. Výpis všech $rocniku+$skol
- 99 | SOS |
- 00 | SOU |
- 00 | SOS |
2. Výpis $trid v ramci $rocniku+$skol
- 00 | SOU | Prvni |
- 00 | SOU | Druhy |
3. Výpis jmen v ramci $tridy+$rocniku+$skoly
- 00 | SOU | Prvni | Maxim | Petere
- 00 | SOU | Prvni | Olin | Mimi

Můj kód je následující, ale nefunguje úplně přesně, resp. se nemohu dopátrat k tomu, aby mi to vypisovalo seznam všech jmen na základě zadané $tridy

S tímto kódem (viz níže) se dostanu do bodu 2, ale jakmile chci zobrazit bod 3, tak už mi to neskočí na podmínku pro výpis seznamu všech žáků, ale znovu se mi to vrací do příkazu pro výpis $rocniku+$skol (ale chápu-li to správně, tak už je GET $trida nastavena, tak by měla proběhnout else podmínka - či nikoliv?)

<?php
if (isset($_SERVER['QUERY_STRING']) && !empty($_SERVER['QUERY_STRING'])) {
        if (!isset($_GET['trida']) && !isset($_GET['rocnik']) && !isset($_GET['skola'])) {
        //    PRIKAZ na vypis rocniku a skol;
            $skola = $_SERVER['QUERY_STRING'];
            $rocnik = $_SERVER['QUERY_STRING'];
            $rok_sk = str_replace(array('%20', '&'), ' ' , $_SERVER['QUERY_STRING']);
            $dotaz="(select distinct rocnik, skola, trida FROM tabulka WHERE CONCAT(rocnik, ' ', skola)='$rok_sk')";

            echo ("<h3><center>vybral jsi $rok_sk </center></h3>");
            while (list($rocnik,$skola,$trida) = mysql_fetch_row($navrat)){
                echo ("<a href=\"index.php?$rocnik&$skola&$trida\"><b></b>$rocnik - $skola - $trida</a></br>");    
                } 
        } else {
            // PRIKAZ na seznam zaku v rámci trídy;
            $rocnik = $_SERVER['QUERY_STRING'];
            $skola = $_SERVER['QUERY_STRING'];
            $trida = $_SERVER['QUERY_STRING'];
            $vypisuj = str_replace(array('%20', '&'), ' ' , $_SERVER['QUERY_STRING']);

            $dotaz="(select distinct rocnik, skola, trida, jmeno, prijmeni FROM tabulka WHERE CONCAT(rocnik, ' ', skola, ' ', trida)='$vypisuj')";

            echo ("<h3><center>vybral jsi $vypisuj</center></h3>");
            echo - pro vypis tabulky
        } 
    }
else {
    // PRIKAZ pro kompletni seznam;
    echo ("<a href=\"index.php?$rocnik&$skola\"><b></b>$rocnik - $skola</a></br>");
}
?>

Zkoušela jsem různé varianty

Tento řádek vypíše druhou podmínku (tzn. seznam všech jmen, ale tomuto by mělo předcházet ještě volba $rocnik+$skola+$trida)
    if (isset($_GET['trida']))

Tento řádek vypíše rovněž druhou podmínku
    if (isset($trida))

Tento řádek vypíše první podmínku, ale opět už když zvolím $rocnik+$skola+$trida, tak mi to nepřejde na vyhodnoceni druhé podmínky (neboť v tomto momentě je už $trida nastavena, či nikoliv)?
    if (!isset($trida))

Děkuji za jakoukoliv radu, zda je posloupnost udělána správně, či se pouze špatně odvolávám na parametry v rámci podmínek.

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: