Kategorie a menu, generovanie v php
-
.:M4jco:.
Medium Star
- Príspevky: 442
- Registrovaný: 01 máj 2007, 13:07
- Bydlisko: Bassline lover
- Kontaktovať používateľa:
Kategorie a menu, generovanie v php
Zdravím
Viem že tu už píšem dosť, ale furt mám nejaký problém a to programovanie mi nejako moc nejde ale chcem sa to naučiť, momentálne neviem vyriešiť jeden problém.
Jedná sa o generovanie kateogórií a následne menu z tých kategorií. Viem, je to dosť nezrozumiteľné, ale pokusím sa vam to viac vysvetliť. V databáze mám vytvorený tabulku "categories" a v ňom su kategorie ako napríklad "home" "profil" a tak dalej, každá kategória ma svoje vlastné id. Zatiaľ by malo byť všetko rozumné, tak idem ďalej. Následne chcem vypísať všetky tieto kategórie ktoré mam uložené v databáze do nejakého menu. Proste aby sa na stránke vypísali všetky tie kategórie ako "home" "profil" a podobne. Tu by malo byť tiež všetko jasne, a toto ešte dokážem spraviť, ale potrebujem, aby tie vypísane kategórie boli odkazy, na ktoré keď kliknem tak ma to hodí do príslušnej sekcie, a vypíšu sa články z príslušnej sekcie. Napríklad kliknem na stránku (napr. www.nieco.sk/index.php?category=1) "profil" a vypíšu sa mi všetky záznamy ktoré sú v kategórií profil. Chcem aby sa to generovalo automaticky, pretože robiť to ručne je dosť zbytočné. Proste v administrácií si pridám kategóriu, a ihneď sa mi zobrazí na hlavnej stránke ako blok menu, ktoré bude mať odkaz napríklad www.nieco.sk/index.php?category=1, tak ma to presmeruje do kategŕoie ktorá ma id 1, a podobne. Mám to spravené na svojej stránke, ale je to spravené "na tvrdo" čiže pokial chcem pridať novúsekciu a aby sa zobrazoval v tej kategórií tak musím upraviť súbory...Prajem si aby sa to generovalo automaticky.
Viem, je to možno trochu zložitejšie a dlhšie, ale bol by som rád keby mi to niekto napísal, poprípade niekto naviedol kúskami kódu, a ja si hádam nejako poradím. Za každú radu budem rád.
Ďakujem
Viem že tu už píšem dosť, ale furt mám nejaký problém a to programovanie mi nejako moc nejde ale chcem sa to naučiť, momentálne neviem vyriešiť jeden problém.
Jedná sa o generovanie kateogórií a následne menu z tých kategorií. Viem, je to dosť nezrozumiteľné, ale pokusím sa vam to viac vysvetliť. V databáze mám vytvorený tabulku "categories" a v ňom su kategorie ako napríklad "home" "profil" a tak dalej, každá kategória ma svoje vlastné id. Zatiaľ by malo byť všetko rozumné, tak idem ďalej. Následne chcem vypísať všetky tieto kategórie ktoré mam uložené v databáze do nejakého menu. Proste aby sa na stránke vypísali všetky tie kategórie ako "home" "profil" a podobne. Tu by malo byť tiež všetko jasne, a toto ešte dokážem spraviť, ale potrebujem, aby tie vypísane kategórie boli odkazy, na ktoré keď kliknem tak ma to hodí do príslušnej sekcie, a vypíšu sa články z príslušnej sekcie. Napríklad kliknem na stránku (napr. www.nieco.sk/index.php?category=1) "profil" a vypíšu sa mi všetky záznamy ktoré sú v kategórií profil. Chcem aby sa to generovalo automaticky, pretože robiť to ručne je dosť zbytočné. Proste v administrácií si pridám kategóriu, a ihneď sa mi zobrazí na hlavnej stránke ako blok menu, ktoré bude mať odkaz napríklad www.nieco.sk/index.php?category=1, tak ma to presmeruje do kategŕoie ktorá ma id 1, a podobne. Mám to spravené na svojej stránke, ale je to spravené "na tvrdo" čiže pokial chcem pridať novúsekciu a aby sa zobrazoval v tej kategórií tak musím upraviť súbory...Prajem si aby sa to generovalo automaticky.
Viem, je to možno trochu zložitejšie a dlhšie, ale bol by som rád keby mi to niekto napísal, poprípade niekto naviedol kúskami kódu, a ja si hádam nejako poradím. Za každú radu budem rád.
Ďakujem
-
vivaSlovakia
Guru wannabe
- Príspevky: 2119
- Registrovaný: 29 júl 2006, 10:30
nikde som si nevsimol ze ku kazdemu clanku priradujes id kategorie... bude to potrebne
a zobrazenie clankov spravis s jednoduchym query
a zobrazenie clankov spravis s jednoduchym query
Kód: Vybrať všetko
SELECT * FROM clanky WHERE id_categ = '{$_GET['category']}'-
.:M4jco:.
Medium Star
- Príspevky: 442
- Registrovaný: 01 máj 2007, 13:07
- Bydlisko: Bassline lover
- Kontaktovať používateľa:
No to som zabudol napísať. KAždý článok keď ho pridám, a zvolím kategoriu v ktorej bude, tak sa mu priradí id podla kategórie.
Tvoj spôsob ktorý si mi poslal fruxo mám použitý teraz na stránke, a funguje to, ale ja potrebujem aby sa mi generovalo to menu automaticky, tie kategórie su spravené dá sa povedať kompletne. Už len potrebujem generovať to menu automaticky podla tých kategórií ktoré mám vytvorené.
Tvoj spôsob ktorý si mi poslal fruxo mám použitý teraz na stránke, a funguje to, ale ja potrebujem aby sa mi generovalo to menu automaticky, tie kategórie su spravené dá sa povedať kompletne. Už len potrebujem generovať to menu automaticky podla tých kategórií ktoré mám vytvorené.
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
Kód: Vybrať všetko
$result = mysql_query("select id, nazov from categorie order by nazov");
while($link = mysql_fetch_object($result)){
echo "<a href=\"index.php?category=".$link->id."\">".$link->nazov."</a><br />";
}-
.:M4jco:.
Medium Star
- Príspevky: 442
- Registrovaný: 01 máj 2007, 13:07
- Bydlisko: Bassline lover
- Kontaktovať používateľa:
Díky, funguje to
avšak ešte potrebujem poslednú vec spraviť, a to, že keď sa mi spravia tie linky tvojím selectom (napríklad www.nieco.sk/index.php?category=2) a keď klikenm na ten link, tak sa mi vypíšu všetky články ktoré sú uložené v kategórí s id 2. Nejako to nedokážem zakomponovať do tvojho skritpu 
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
Kód: Vybrať všetko
$result = mysql_query("select id, nazov from categorie order by nazov");
while($link = mysql_fetch_object($result)){
echo "<a href=\"index.php?category=".$link->id."\">".$link->nazov."</a><br />";
$result2 = mysql_query("select * from clanky where id_kategorie = ".$link->id);
while($clanok = mysql_fetch_object($result2)){
echo "<a href=\"index.php?clanok=".$clanok->id."\" style=\"padding-left:10px\">".$clanok->nazov."</a><br />";
}
}-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
audiotrack nebude hádať prečo to nefunguje, lebo to vie. Skôr by mal hádať ako vypadá zdroják stránky zobrazujúci články
ja som ho vygeneroval ako clanok=id ale ak sa ti premenná volá inač, tak si to zmeň. Takisto nemyslím že by sa o články staral index.php, skôr to bude iná stránka. Ale upraviť si odkaz už musíš sám, keď si nenapísal ukážku linku na nejaký článok
-
.:M4jco:.
Medium Star
- Príspevky: 442
- Registrovaný: 01 máj 2007, 13:07
- Bydlisko: Bassline lover
- Kontaktovať používateľa:
Okej, dám to tu všetko aby v tom nebol problém a aby sa mohol problém vyriešiť 
Takže: Na index.php zobrazujem všetky články bez ohladu na to v akej je článok kategórií. Proste sa vypíše 5 článkov a viac sa nerieši.
O zobrazovanie kategórií sa staral súbor node.php ktorý aj v sebe obsahoval zobrazovanie kategórií ale bolo to robené v následovnom štýle:
A vlastne ked som chcel zobraziť sekciu "Blog" tak som mal odkaz www.nieco.sk/node.php?show=blog a zobrazili sa mi články z kategorie blog. Potom ked som si chcel urobiť napríklad sekciu "Profil" tak som mal použitý zasa takýto kód:
A takto to pokračovalo ďalej. Ako viete, toto nieje bohvieaký dobrý spôsob a prto chcem aby sa menu generovalo automaticky (to je už vyrešené) a aby po kliknutí na danu kategóriu sa zobrazili články z tej sekcie.
A zároveň index.php obsahoval takýto istý kod, avšak nebola tam podmienka where kategoria="abcd"
Teraz som použil tvoj kód, avšak nefunguje to, a problém bude asi v tom že štruktura databazy je trochu iná než som pravdepodobne napísal.
Štruktúra je následovná:
Je tabulka menom "categories" a tam su dva stlpce: id a nazov
Potom mám tabulku menom "nodes" a tam su stlpce následovné: id datum nadpis obsah kategoria
Kde položka kategória obsahuje názov kategórie (a tu bude parvdepodobne tá chyba, pretože myslím si že v stlpci id by malo byť id kategórie v ktorej je uložená)
To je všetko, zatial su tam len tieto dve tabulky, viac ich tam neni.
Potom, linky na články neexistujú. Proste tie správy obsahujú len nadpis(ktorý neni klikatelný) nejaký text a datum. To je všetko.
Hádam by to malo byť jasné aspoň trochu už
Je to už posledná vec ktorú potrebujem, potom už tu nebudem otravovať 
Takže: Na index.php zobrazujem všetky články bez ohladu na to v akej je článok kategórií. Proste sa vypíše 5 článkov a viac sa nerieši.
O zobrazovanie kategórií sa staral súbor node.php ktorý aj v sebe obsahoval zobrazovanie kategórií ale bolo to robené v následovnom štýle:
Kód: Vybrať všetko
switch ($show)
{
case "blog":
$query2 ="SELECT nadpis, obsah, kategoria,";
$query2.=" DATE_FORMAT(datum, '%d.%m, %Y') AS datum";
$query2.=" FROM nodz_nodes where kategoria='Blog' ORDER BY id DESC LIMIT 10";
$result2=mysql_query($query2);
while (list($nadpis2,$obsah2,$kategoria2,$datum2) =
mysql_fetch_row($result2)) {
echo "<b><h2>$nadpis2</h2><h3>Kategória: ($kategoria2)</h3></b>";
echo "<p>$obsah2</p><p>$datum2</p>";
}
break;Kód: Vybrať všetko
case "profil":
$query3 ="SELECT nadpis, obsah, kategoria,";
$query3.=" DATE_FORMAT(datum, '%d.%m, %Y') AS datum";
$query3.=" FROM nodz_nodes where kategoria='Profil' ORDER BY id DESC LIMIT 10";
$result3=mysql_query($query3);
while (list($nadpis3,$obsah3,$kategoria3,$datum3) =
mysql_fetch_row($result3)) {
echo "<b><h2>$nadpis3</h2><h3>Kategória: ($kategoria3)</h3></b>";
echo "<p>$obsah3</p><p>$datum3</p>";
}
break;A zároveň index.php obsahoval takýto istý kod, avšak nebola tam podmienka where kategoria="abcd"
Teraz som použil tvoj kód, avšak nefunguje to, a problém bude asi v tom že štruktura databazy je trochu iná než som pravdepodobne napísal.
Štruktúra je následovná:
Je tabulka menom "categories" a tam su dva stlpce: id a nazov
Potom mám tabulku menom "nodes" a tam su stlpce následovné: id datum nadpis obsah kategoria
Kde položka kategória obsahuje názov kategórie (a tu bude parvdepodobne tá chyba, pretože myslím si že v stlpci id by malo byť id kategórie v ktorej je uložená)
To je všetko, zatial su tam len tieto dve tabulky, viac ich tam neni.
Potom, linky na články neexistujú. Proste tie správy obsahujú len nadpis(ktorý neni klikatelný) nejaký text a datum. To je všetko.
Hádam by to malo byť jasné aspoň trochu už
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
menu bude teda nejak takto: a nodes.php bude takto:keďže je to len z hlavy, a keďže mám stále nejasno čo a ako tam máš, tak to ber s rezervou ak to nepôjde
Kód: Vybrať všetko
$result = mysql_query("select id, nazov from categories order by nazov");
while($link = mysql_fetch_object($result)){
echo "<a href=\"node.php?category=".$link->id."\">".$link->nazov."</a><br />";
$result2 = mysql_query("select * from nodz_nodes where kategoria = '".$link->nazov."'");
while($clanok = mysql_fetch_object($result2)){
echo "<a href=\"node.php?show=".$clanok->id."\" style=\"padding-left:10px\">".$clanok->nadpis."</a><br />";
}
}Kód: Vybrať všetko
if(isset($_GET['show']){
$query2 ="SELECT * ";
$query2.=" DATE_FORMAT(datum, '%d.%m, %Y') AS datum";
$query2.=" FROM nodz_nodes where id=".(int)$_GET['show'];
$result2=mysql_query($query2);
while (list($nadpis2,$obsah2,$kategoria2,$datum2) =
mysql_fetch_row($result2)) {
echo "<b><h2>$nadpis2</h2><h3>Kategória: ($kategoria2)</h3></b>";
echo "<p>$obsah2</p><p>$datum2</p>";
}
else if(isset($_GET['category']){
$query2 ="SELECT * ";
$query2.=" DATE_FORMAT(datum, '%d.%m, %Y') AS datum";
$query2.=" FROM nodz_nodes as n, categories as c where c.name = s.kategoria and c.id=".(int)$_GET['cat'];
$result2=mysql_query($query2);
while (list($nadpis2,$obsah2,$kategoria2,$datum2) =
mysql_fetch_row($result2)) {
echo "<b><h2>$nadpis2</h2><h3>Kategória: ($kategoria2)</h3></b>";
echo "<p>$obsah2</p><p>$datum2</p>";
}