Diskuze: Postupný výpis seznamu v rámci jedné stránky
V předchozím kvízu, Online test znalostí SQL a databází, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 11 zpráv z 11.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí SQL a databází, jsme si ověřili nabyté zkušenosti z kurzu.
chtěla bych se vyhnout tomu, aby pro každou kategorii byla vytvořena samotná stránka např. web.cz/1994-95-Czech-BOOK.php a v budoucnu mít xx stránek.
V praxi by to bolo cca taketo nieco web.cz/index.php?rok=1&kat=1& ....
rok = id_rok
kat = id_kategoria
nasledne mozes s premennymi pracovat:
if(isset($_GET['rok']) && isset($_GET['kat']))
{
// tu uz si urobis, co sa ma stat ak maju premenne v linku nejaku hodnotu
}
Poviem pravdu, ze necital som to cele len zaciatok, ale riesil by som to asi takto nejak
Neměl by jsi prosím nějakou stránku, kde by byl tento způsob použit a vysvětleno jak funguje $_GET? Marně se snažím najít nějaký návod jak to implementovat k url adresám, resp. pochopit jak to funguje, ale vždy to je pouze v souvislosti s formuláři.
Nemůžu přijít na to, jak to zakomponovat do svého kódu.
$_GET je celkem jednoduchý. Máš URL na nějakou stránku, dejme tomu,
mojestranky.cz/index.php
.
A teď budu chtít do URL přidat nějaký parametr, dejme tomu, že id
něčeho. Takže za konec URL připíšu otazník, název parametru a jeho
hodnotu. Takto.
mojestranky.cz/index.php?id=1
Jednotlivé parametry pak jsou ve slovníku $_GET, a přistupuješ k nim podle jejich názvu. Nyní v index.php můžeš udělat následující:
if( isset($_GET["id"])) { //zjistíš, jestli parametr existuje. pokud ano, vrátí se true
$id = $_GET["id"]; //pokud existuje, můžeš k ní bezproblémů přistupovat
Pokud potřebuješ parametrů víc, oddělíš je znakem &, např
mojestranky.cz/index.php?id=1&kategorie=deti&rok=2010
Pokud takhle vygeneruješ link a přes <a> ho dosadíš k něčemu, uživatel na to klikne, aniž by se musel o něco zajímat, a ty v kódu víš, na co kliknul.
Ešte by som ti poradil, aby si nepoužívala zastaralý MySQL driver - "mysql_" - v PHP 7 už je dokonca aj vymazaný ak sa nemýlim. Odporúčam ti pokiaľ si začiatočníčka, tak používať PDO, tu na itnetworku je dokonca urobená trieda na použitie PDO, ktorá je veľmi jednoduchá na použitie. Alebo ak nechceš zmenu, tak môžeš kľudne pracovať s "mysqli_"
Tieto linky by ti mohli pomôcť:
http://www.w3schools.com/…_connect.asp
http://www.w3schools.com/…rglobals.asp
http://www.itnetwork.cz/php/databaze
Tak jsem se v tom trochu ztratila, neboť nevidím, že když použiju $_GET, tak to vyřeší můj dotaz.
O zobrazení hlavního seznamu se stará tento kód
$databaze="XXX";
$spojeni=mysql_connect("XXX","XXX","XXX");
$co="(XXX)";
mysql_select_db("XXX") or die( mysql_error() );
$navrat=mysql_query($co, $spojeni) or die(mysql_error());
while (list($nazev,$nazev_kategorie) = mysql_fetch_row($navrat)){
echo ("<a href=\"test.php?$nazev&$nazev_kategorie\"><b></b>$nazev - $nazev_kategorie</a></br>");
}
Takže k echo mám dopsat parametry?
echo ("<a href=\"test.php?rok=$nazev&kategorie=$nazev_kategorie\"><b></b>$nazev - $nazev_kategorie</a></br>");
A potom použiju
if(isset($_GET['rok']) && isset($_GET['kategorie']))
{
a zde napisu znovu ECHO pro zobrazeni seznamu, nebo uz pro podseznam?
}
Pro podseznam mam tento kod:
if (isset($_SERVER['QUERY_STRING']) && !empty($_SERVER['QUERY_STRING'])){
$nazev = $_SERVER['QUERY_STRING'];
$nazev_kategorie = $_SERVER['QUERY_STRING'];
$serie = str_replace(array('%20', '&'), ' ' , $_SERVER['QUERY_STRING']);
$databaze="XXX";
$spojeni=mysql_connect("XXX","XXX","XXX");
$co="(XXX)";
mysql_select_db("XXX") or die( mysql_error() );
$navrat=mysql_query($co, $spojeni) or die(mysql_error());
echo ("<h3><center>vybral jsi --- $serie</center></h3>");
while (list($nazev,$nazev_kategorie,$nazev_podkategorie) = mysql_fetch_row($navrat)){
echo ("<a href=\"test.php?$nazev&$nazev_kategorie&$nazev_podkategorie\"><b></b>$nazev - $nazev_kategorie - $nazev_podkategorie</a></br>");
}
}
Bude to tak správně?
if(isset($_GET['rok']) && isset($_GET['kategorie']))
{
echo ("<a href=\"test.php?rok=$nazev&kategorie=$nazev_kategorie&podkategorie=$nazev_podkategorie\"><b></b>$nazev - $nazev_kategorie - $nazev_podkategorie</a></br>");
}
A pro zobrazeni konkrétního titulu, pak bude podmínka
if(isset($_GET['rok']) && isset($_GET['kategorie'] && isset($_GET['podkategorie']))
{
ECHO zobrazeni titulu?
}
A ted když mám 3 podmínky, tak už je jenom dám do cyklu?
Např.
o PDO jsem už četla a že zápisy, které používám jsou už zastaralé, ale ve škole jsem se učila právě tuto variantu a snažím se ji nějak využít v rámci vlastního projektu, na kterém bych se chtěla databáze/programování naučit používat. Neboť ve škole jsem vždycky co se týká programování/databází měla jen teorii, ale praxi, resp. ukázka použití v reálu byla vždy nulová.
Navíc nevím, jestli by bylo ideální se nyní začít učit PDO, když i ještě ve starém způsobu programování tápu a mám určité nedostatky.
Ale také si říkám, že jakmile by se mi podařilo tohle zrealizovat, že bych později nastudovala PDO a přepsala to do této podoby.
Dle mého názoru je zbytečné se učit něco, co už se nemá používat a pak se "to" přeučovat podle nových "regulí". Navíc si myslím, že by tě to v učení se nových věcí i mohlo mást a svádět ke špatnému způsobu programování. Začni rovnou s učením PDOčka a se starým způsobem neztrácej čas...
Ano, souhlasím, ale když nepochopím, resp. se mi nedaří najít vhodné návody na mysql, tak na PDO už to tuplem nenajdu.
Všichni říkají, že je to obdoba, ale marně se snažím najít, jaké všechno změny bych musela udělat ve svém stávajícím kódu, aby odpovídal PDO.
Zkoušela jsem se dívat např. na $_GET a použití v PDO a nikde nic.
Tímto bych se asi nikam nepohnula a nerada bych stála se svým "programováním" na mrtvém bodě, než bych nějaký vhodný návod na přepis našla, neboť na internetu mi přijde, že zatím PDO není moc rozšířené , resp. se o něm moc nepíše
Třeba tady na itnetworku je na to seriál. Já sice PHP nedělám, snažím se tvořit v ASP.NET, ale z vlastní zkušenosti vím, že když se něco "naučíš po staru" blbě se to přeučuje "do nového" a pořád do toho nového budeš tahat špatné staré návyky... Učil jsem se C# winforms a po přechodu na WPF tam dodnes používám blbosti, které jsem se naučil ve WF...
Prosím, dokázal by někdo poradit, jak to máte řešené, příp. dát nějakou ukázku? Nenapadá mě, jak to mám vyřešit.
Nechce se mi věřit, že by všichni měli třeba 100 stejných stránek akorát na každé z nich jiný obsah, určitě se to musí jít nějak dát do cyklu a aby se to odehrávalo v rámci jedné stránky
Děkuji.
Zobrazeno 11 zpráv z 11.