Autor Zpráva
joj
Profil *
Už dlhšie pátram po návode ako triediť dáta z DB pomocou <option> a <selectu>. To znamená že mám formulár, kde <select> obsahuje určité kritéria, podľa ktorých by som chcel triediť dáta z tabuľky. Napr. vyberiem "šport" a vypíše mi to záznamy s kritériom šport. Poradí prosím niekto? DB MySQL
roberta
Profil
dá sa to napr. tak, že na udalosť onchange toho selectu submitneš formulár (action dáš tú istú stránku, ako je ten formulár) a v GET/POST premenných budeš mať ID toho športu. a nakoniec upravíš querystring, aby ti vybral záznamy, ktoré majú ID športu
WanTo
Profil
Třeba:

$vysledek = @mysql_query("select * from tabulka where kriterium like '" . $_GET["kriterium"] . "'"); //$kriterium je třeba sport
joj
Profil *
Ďakujem za odpoveď. Prosím poraď mi nejaký jednoduchý príklad ako by to malo vyzerať.
Takže mám dokument zobraz.php

V ňom formulár:
<form method="post" action="zobraz.php">
<select name="kategoria">
<option value="...................."></option>

</select>
<input type="submit" name="odoslať" value="Zobraz výber">
</form>

Kód PHP..........prosím poraď
WanTo
Profil
Kód PHP..........prosím poraď
Jak hodně umíš s PHP?
joj
Profil *
No len sa učím a toto sú práve veci, ktorým chcem porozumieť. Neviem toho veľa. Jednoduché veci ako uložiť dáta do DB, zobrazenie podľa kritérii, formuláre... Všetko je to viac menej spracované z kníh a nejakých on-line návodov. Keď mám urobiť niečo zložitejšie, kde neviem presný postup, tak to je už ťažšie :-(.
WanTo
Profil
joj
Ten PHP kód bude prakticky stejný jako ten, co ho používáš na jednoduché select dotazy. Akorát jako dotaz použiješ něco podobného, co jsem napsal.
joj
Profil *
Idem sa s tým pohrať. Zatiaľ dík za rady.
roberta
Profil
<form method="post" action="zobraz.php" name="meno_fomulara">
<select name="kategoria" onchange="meno_fomulara.action='zobraz.php';meno_fomulara.submit();">
<option value="...................."></option>

</select>
<input type="submit" name="odoslať" value="Zobraz výber">
</form>
<?
if (strlen($_POST['kategoria'])>0)
{
//vypis iba tie zaznamy, ktore su z kategorie $_POST['kategoria']
}
else
{
//vypis vsetky zaznamy
}
?>
joj
Profil *
Nemôžete to ešte upresniť. Neviem, ako mám vyriešiť výber dát z DB. Ďakujem
joj
Profil *
Tak nakoniec som to nejako urobil. Pomohli ste mi to pochopiť a teraz mám v tom už celkom jasno. Urobil som aj option ktorý si ťahá kategórie z databázy, takže nedôjde k načítaniu prázdnych resp. neaktuálnych záznamov. Ešte raz Ďakujem.

echo '<form method="post" action="pokus.php" name="pokus">
<select name="kategoria_zaradenia">
<option value="">Veberte kategóriu:</option>';

$zaznam = 'select kategoria_zaradenia from inzerat group by kategoria_zaradenia asc';
$vysledok = mysql_query ($zaznam);
while ($riadok = mysql_fetch_array ($vysledok, MYSQL_NUM)) {
echo '<option value="', $riadok[0], '">', stripslashes($riadok[0]), '</option>';
}

echo '</select>

<input type="submit" name="odoslať" value="Zobraz inzeráty">
</form><p>&nbsp;</p>';

if (strlen($_POST['kategoria_zaradenia'])>0)
{

$vysledok = @mysql_query("select * from inzerat where kategoria_zaradenia like '" . $_POST["kategoria_zaradenia"] . "'");
while ($zaznam = mysql_fetch_array ($vysledok))

echo '<div class="inzerat_ramcek"><span class="inzerat">Názov inzerátu: </span>'.$zaznam["nazov_inzeratu"]."<br />
<span class=\"inzerat\">Kontakt: </span>".$zaznam["kontakt"]."<br />
<span class=\"inzerat\">Text: </span>".$zaznam["text"]."</span><br />
<span class=\"inzerat\">Dátum pridania: </span>".$zaznam["datum"]."</span><br /></div>\n";
}
else
{

$vysledok = @mysql_query("select * from inzerat");
while ($zaznam = mysql_fetch_array ($vysledok))

echo '<div class="inzerat_ramcek"><span class="inzerat">Názov inzerátu: </span>'.$zaznam["nazov_inzeratu"]."<br />
<span class=\"inzerat\">Kontakt: </span>".$zaznam["kontakt"]."<br />
<span class=\"inzerat\">Text: </span>".$zaznam["text"]."</span><br />
<span class=\"inzerat\">Dátum pridania: </span>".$zaznam["datum"]."</span><br /></div>\n";

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

0