Autor | Zpráva | ||
---|---|---|---|
Kos112567 Profil |
Ahoj,
pokouším se vytvářet svůj vlastní "redakční systém"(neobjektový), v databázi mám tabulku "clanky", které pak umisťuji na web, potřebuji ale, aby na stránce "index.php" bylo více článků a v ostatních stránkách pouze jeden článek, sesmolil jsem (s pomocí) toto: <?php require('Db.php'); Db::connect('127.0.0.1', 'sokol_db', 'root', ''); if (isset($_GET['stranka'])) $url = $_GET['stranka']; else $url = 'index'; //když nebude definovan klic stranka, pouzije se index // Rozhodne se, co se má získat if ($url == 'index') { $uvod = Db::queryOne(' SELECT * FROM clanky WHERE url = ? ', 'uvod'); $novinky = Db::queryOne(' SELECT * FROM clanky WHERE url = ? ', 'novinky'); // Uložení do dvou proměnných $titulek = "Hlavní stránka webu."; $obsah = $uvod['obsah'] . "<br>" . $novinky['obsah']; // Zde dojde ke sloučení dvou článků } else { $clanek = Db::queryOne(' SELECT * FROM clanky WHERE url = ? ', $url); // Uložení do dvou proměnných $titulek = $clanek['titulek']; $obsah = $clanek['obsah']; } if (!$clanek) { if ($url != 'chyba') { header('Location: index.php?stranka=chyba'); exit(); } else die('Nebyl nalezen chybovy clanek'); } $stranka = isset($_GET["stranka"]) ? $_GET["stranka"] : ""; ?> nicméně když si vytvořím nový článek s url uvod nebo novinky, tak v indexu se mi propisuje pořád pouze článek 404 (chybové hlášení), ostatní stránky (kde je pouze jeden článek) fungují bez problémů... Nemáte někdo tipy, co tam mám špatně? Předem díky za odpovědi :) |
||
petr 6 Profil |
#2 · Zasláno: 26. 3. 2015, 17:04:46
A kde prosim definujes promennou $clanky?
|
||
juriad Profil |
Na 39. řádku máš podmínku na proměnnou $clanky. Tu nikde nenastavuješ; takže
!$clanky bude vždy true, tedy se vykoná blok řádků 40-48. Když jsi na indexu, tak se nerovná řetězci chyba a tedy se provede přesměrování na 43. řádku.
Proč to funguje na stránkách článků netuším. Hádám, že nám něco zatajuješ. |
||
Kos112567 Profil |
Pardon, má tam být samozřejmě $clanek, já ho tam mám akorát chyba při kopírování :)
Nicméně problém, který popisuju je s proměnnou $clanek |
||
juriad Profil |
#5 · Zasláno: 26. 3. 2015, 17:12:19
Pokud jsi na indexu, tak se proměnná $clanek nikdy nenastaví a zbytek je stejný, jako píšu výše.
|
||
Kos112567 Profil |
#6 · Zasláno: 26. 3. 2015, 17:15:33
Jakto že ne?
if ($url == 'index') { $uvod = Db::queryOne(' SELECT * FROM clanky WHERE url = ? ', 'uvod'); $novinky = Db::queryOne(' SELECT * FROM clanky WHERE url = ? ', 'novinky'); zde bych měl mít napsané, že pokud url stránky je index, měli by z db vzít články z indexem uvod a novinky, ne? |
||
juriad Profil |
#7 · Zasláno: 26. 3. 2015, 17:18:08
Ano, ale proměnnou $clanek v té větvi ifu nikde nenastavuješ. Pracuješ jen s něčím, co ty nazýváš článek, ale PHP to nazývá pole jménem $uvod a pole jménem $novinky.
|
||
Kos112567 Profil |
#8 · Zasláno: 26. 3. 2015, 17:30:07
Jasně, už to chápu...tedy akorát stačilo místo $clanek poupravit na $obsah... :)
Díky moc! |
||
Časová prodleva: 10 let
|
0