Avatar
kom72
Člen
Avatar
kom72:

Ahoj,
chtěl bych vás požádat o pomoc s nasměrováním, jak zprovoznit výpis fotek z databáze (obsazene v tabulce FOTOGRAFIE) vypsane pomocí

WHERE

dle definované kategorie v teto tabulce. To je navázané na generovaném odkaze, který se vypisuje z jiné tabulky (KATEGORIE). Neumím to lépe popsat.

Mám stranku: kategorie.php, kam se vypisují z MySQL kategorie fotek. Po kliknutí na nějakou "Kategorii" fotek, se mi načte dalsi stranka: kategorie_vypis­.php, kde bych chtel, at se zobrazí pomoci dotazu

WHERE

zvolena kategorie fotek.

Problem je, ze odkaz na jednotlive kategorie je generovany, tedy jen jeden a neumim na nej navazat vice dotazu na vice kategorií... Snad to rozumne vysvetluji.

<h1>
    <?php echo $row_kategorie_vypis['kategorie_nazev']; ?>
</h1>
<p class="kategorie_popis">
    <?php echo $row_kategorie_vypis['kategorie_popis']; ?>
</p>

    <?php do { ?>
      <img class="fotogalerie stin" src="fotky/<?php echo $row_kategorie_fotky['kategorie']; ?>/<?php echo $row_kategorie_fotky['fotka']; ?>_nahled.jpg" alt="">
      <?php } while ($row_kategorie_fotky = mysql_fetch_assoc($kategorie_fotky)); ?>

živý náhled: http://www.kom72.cz/index.php?…

 
Odpovědět 25. února 21:23
Avatar
Jiří Gracík
Redaktor
Avatar
Odpovídá na kom72
Jiří Gracík:

Takže chceš vypsat fotografie z více kategorií?

Nahoru Odpovědět 26. února 14:42
Creating websites is awesome till you see the result in another browser ...
Avatar
kom72
Člen
Avatar
Odpovídá na Jiří Gracík
kom72:

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.

Editováno 26. února 16:07
 
Nahoru Odpovědět 26. února 16:04
Avatar
kom72
Člen
Avatar
kom72:

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_stredoho­ri.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

 
Nahoru Odpovědět 26. února 16:12
Avatar
Odpovídá na kom72
Mark Vajšbejn:

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_katego­rie=dane_id_ne­bo_"systemovej_na­zev"_kategorie a následně na stránce kategorie_vypis­.php pomocí $_GET-u na ['nazev_katego­rie'] požadovat požadovanou (jo je to divně napsaný :-D) 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. :D
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. :)

 
Nahoru Odpovědět 26. února 17:39
Avatar
kom72
Člen
Avatar
Odpovídá na Mark Vajšbejn
kom72:

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?']
Editováno 26. února 18:32
 
Nahoru Odpovědět  -1 26. února 18:31
Avatar
Odpovídá na kom72
Mark Vajšbejn:

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í.

Editováno 26. února 18:50
 
Nahoru Odpovědět  -1 26. února 18:50
Avatar
kom72
Člen
Avatar
kom72:

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...

 
Nahoru Odpovědět 26. února 19:06
Avatar
Odpovídá na kom72
Mark Vajšbejn:

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_jme­no_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. :)

 
Nahoru Odpovědět  +1 26. února 19:39
Avatar
kom72
Člen
Avatar
kom72:

Vyreseno, diky Marku. Jen se bojim, ze tohle neni posledni z mych stupidnich dotazu :-)

 
Nahoru Odpovědět 26. února 23:14
Avatar
Jiří Gracík
Redaktor
Avatar
Odpovídá na Mark Vajšbejn
Jiří Gracík:

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 :)

Editováno 27. února 12:20
Nahoru Odpovědět 27. února 12:18
Creating websites is awesome till you see the result in another browser ...
Avatar
Odpovídá na Jiří Gracík
Mark Vajšbejn:

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.

 
Nahoru Odpovědět 27. února 12:20
Avatar
Jiří Gracík
Redaktor
Avatar
Odpovídá na Mark Vajšbejn
Jiří Gracík:

Jeho úroveň je irelevantní, nemůžeš ho učit hned od začátku jednu z největších chyb.

Nahoru Odpovědět 27. února 12:21
Creating websites is awesome till you see the result in another browser ...
Avatar
Jiří Gracík
Redaktor
Avatar
Odpovídá na Mark Vajšbejn
Jiří Gracík:

Navíc na práci s databází v PDO je tu celkem fajn třída, tou byste mohli začít.

Nahoru Odpovědět 27. února 12:24
Creating websites is awesome till you see the result in another browser ...
Avatar
Odpovídá na Jiří Gracík
Mark Vajšbejn:

Nebudu to komentovat, zbytečná ztráta času. Jen bych se tu s tebou hádal.

 
Nahoru Odpovědět 27. února 12:25
Avatar
Jiří Gracík
Redaktor
Avatar
Odpovídá na Mark Vajšbejn
Jiří Gracík:

Dobře. Pak už jen zbývá jen doufat, že nebudeš učit podobné věci víc lidí ... :D

Nahoru Odpovědět 27. února 12:28
Creating websites is awesome till you see the result in another browser ...
Avatar
kom72
Člen
Avatar
kom72:

Chlapi, nehádejte se tu kvůli mě :-) Jestli se jedná o bezpečnost/na­padnutelnost 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...

Editováno 27. února 12:43
 
Nahoru Odpovědět 27. února 12:43
Avatar
Jiří Gracík
Redaktor
Avatar
Odpovídá na kom72
Jiří Gracík:

To už máš v podstatě v databázi, je potřeba je už jenom bezpečně vybírat a zobrazovat.

Nahoru Odpovědět 27. února 13:20
Creating websites is awesome till you see the result in another browser ...
Avatar
kom72
Člen
Avatar
Odpovídá na Jiří Gracík
kom72:

mám založit nové vlákno nebo to probereme tady?

 
Nahoru Odpovědět 27. února 13:44
Avatar
Jiří Gracík
Redaktor
Avatar
Odpovídá na kom72
Jiří Gracík:

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í :)

Editováno 27. února 22:51
Nahoru Odpovědět 27. února 22:51
Creating websites is awesome till you see the result in another browser ...
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 20 zpráv z 20.