Diskuze: Složitější? výpis z MySQL
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 20 zpráv z 20.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Takže chceš vypsat fotografie z více kategorií?
nee, jen z jedné. vzdy z te na kterou se klikne. otevre se stranka kategorie_vypis.php, coz ted normalne funguje, ale ja do te jedne šablonové stranky neumim priradit prislusne fotky z kategorie. Ted jsou tam vypsane vsechny co mam zatim zkusebne v DB.
puvodne jsem to mel tak, ze jsem mel v kategorie. php natvrdo pres html
vytvorene vsechny kategorie a odkazama na ne, jsem volal stranku napr. alpy.php
nebo ceske_stredohori.php atd... Vypis fotek na těhle strankach podle
kategorie uz nebyl problem.
/Problem je, kdyz to mam delat vse na jedne strance. Netusim, jestli to co chci
je spravne, ale prijde mi logicke, ze by to melo jít vse generovat na te jedne
strance kategorie_vypis.php
Na té stránce kategorie.php vypisuješ názvy kategorie, tak než půjdu dál, tak bych rád podotknul, že by bylo super si do tabulky s KATEGORIEMI přidat nějaké to pole 'systémový název kategorie' nebo využívat ID dané kategorie - taky možnost a následně k odkazu na danou kategorii (odkaz na kategorie_vypis.php) si přidat na konec ?nazev_kategorie=dane_id_nebo_"systemovej_nazev"_kategorie a následně na stránce kategorie_vypis.php pomocí $_GET-u na ['nazev_kategorie'] požadovat požadovanou (jo je to divně napsaný ) kategorii a pomocí ní vytvořit dotaz na fetch obrázků
WHERE 'systémový název kategorie' = $_GET['nazev_kategorie']
No, snad jsem pobral co jsi chtěl.
Jinak.. tvůj poslední komentář - ano, je 100% lepší mít vše na jedné
stránce. Je to flexibilní - jen se něco přidá do databáze (viz. uváděný
systémový název kategorie) a výpis funguje furt stejně, jen s políčkem na
víc.
samozrejme systemovy nazev kategorie u fotek mam.
kategorie = labske_piskovce, alppy, ceske_stredohori
atd...
ten kod mam dat k mysql dotazu?
takhle nejak?
WHERE 'kategorie' = $_GET['sem mám vypsat vsechny kategorie?']
Ano, takto nějako, k tomu kódu, který po následné exekuci předává do proměnné $kategorie_fotky.
Ale do toho daného $_GET-u který přebírá názvy hodnot z odkazů a následně jejich hodnoty (www.itnetwork.cz/index.php?… bla bla bla&nazev2=hodno2 bla bla bla&nazev3=...) si vpiš právě to systémové jméno kategorie, kterou budeš žádat. Nepiš tam všechny kategorie. To by prostě nefungovalo. PS: Ten get je vždy statický, jak jsi už určitě snad pochopil - protože se mi zdá, že s $_GET-em moc zkušeností nemáš, pouze jeho hodnota se 'vždy' mění.
já nemám žádne zkušenosti s PHP Jak tam mohu vepsat systemove jmeno kategorie, kdyz nevim, jakou kategorii kdo zavola? Jako pochopim, ze tohle udelam na jednu kategorii, kterou nekam natvrdo napisu, ale ja to potrebuju implementovat treba na 10 kategorii...
To jsem ti již psal.
Ale tak, trochu to teda rozepíšu ještě jednou..
na té stránce, kde vypisuješ všechny kategorie, tak tam k tomu odkazu
přidej i toto:
odkaz . cz / kategorie_vypis.php?systemove_jmeno_kategorie=vypis_systemoveho_jmena_dane_kategorie_z_databaze
a následně na stránce s výpisem kategorie žádej z
$_GET-u proměnnou systemove_jmeno_kategorie
.. A ještě si přidej na té stránce s výpisem takovou podmínku:
if(!isset($_GET['systemove_jmeno_kategorie'])) {
$kategorie = 'nejaká základní kategorie, která se zobrazí když není kategorie nastavena';
} else {
$kategorie = $_GET['systemove_jmeno_kategorie'];
}
A k tomu to bych také rád podotknul, že následně už vůbec nepracuj s $_GET-em, ale pouze s proměnnou $kategorie.
PS: Data které přebíráš vůbec nejsou zabezpečena. Tzn. že by toho mohl někdo využít, ale to ti zde doopravdy popisovat nebudu, protože sám nevím, jak je to s aktuální verzí PHP-čka a za druhé - takové věci nepoužívám. Ptej se např. v dalším topicu, který si můžeš otevřít.
Jenom ne takhle proboha. Tohle je nejlepší cesta k tomu si nechat smazat nebo vyprázdnit databázi. Ideálně použij "modernější" přístup k databázi přes ovladač PDO. Tam si předepíšeš dotaz
SELECT column, anothercolumn FROM `Table` WHERE CategoryId = :categoryId
a pak dosadíš hodnoty tak, že PDO předáš pole a ono si zjistí, co je to za hodnoty a správně je odescapuje, což se v předchozím případě rozhodně nedělo.
Pole co pak bude vypadat takto
[
":categoryId" => $categoryId
]
Není špatné zkontrolovat, jestli ti přišlo číslo nebo hodnota co opravdu měla přijít a případně skript zaříznout
Jirko,
já bych mu to nejradši taky řekl, ale tenhle člověk s tím nemá
zkušenosti na takové úrovni, aby ještě pobíral PDOčko.. podívej se
prosimtě na jeho kód a následně reaguj. Jsem s ním v kontaktu a o tomhle
jsem mu již říkal.
Jeho úroveň je irelevantní, nemůžeš ho učit hned od začátku jednu z největších chyb.
Navíc na práci s databází v PDO je tu celkem fajn třída, tou byste mohli začít.
Nebudu to komentovat, zbytečná ztráta času. Jen bych se tu s tebou hádal.
Dobře. Pak už jen zbývá jen doufat, že nebudeš učit podobné věci víc lidí ...
Chlapi, nehádejte se tu kvůli mě Jestli se jedná o bezpečnost/napadnutelnost kodu, chystam se
zalozit dalsi vlakno a tam se muzete vyřádit. Samozrejme, nez to trosku
nastuduju.
Pokud jsem spravne pochopil, co jsem málo stihnul precist, melo by to byt tak,
ze bych nekde mel mit (zjednodusene receno) definovany nazvy stranek, ke kterym
se da pristupovat...
To už máš v podstatě v databázi, je potřeba je už jenom bezpečně vybírat a zobrazovat.
mám založit nové vlákno nebo to probereme tady?
Jestli chceš poradit, tak ti doporušuji si to celé promyslet, vzít si něco z této diskuse a založit nové vlákno, kde to můžeš trochu uceleněji popsat a vyjádřit se, jak bys to chtěl udělat. Uvidíme, jestli to bude dobré nebo se to případně poladí
Zobrazeno 20 zpráv z 20.