Autor | Zpráva | ||
---|---|---|---|
Holy.day Profil * |
#1 · Zasláno: 23. 5. 2008, 12:32:46
Zdravím, protože ještě nemám všechny stránky v databázi (a nechce se mi tam všechny dávat), snažím se zhruba o následující postup skriptu:
1. hledat v db - v případě, že tam danou stránku najde, vytáhnout z db její název ($url), který se použije pro fci require 2. v případě, že v db nenajde, zjistí $url z příkazu switch, kde jich pár k dispozici je Kód: if(IsSet($_GET['page'])): include "***"; $spojeni = MySQL_Connect(server, uzivatel, heslo); MySQL_Select_DB(databaze); $hledame = mysql_query("SELECT * FROM `Stranky` WHERE 'Case' LIKE '" . $_GET["page"] . "'"); $pocet_rad = mysql_num_rows($hledame); $nalezeny_zaz = @MySQL_Fetch_Array($hledame); if($pocet_rad!=0) { $url = $nalezeny_zaz["Url"] ;} else { switch($page) { case "news": $url = "novinky.php"; break; case ... } } endif; require $url; V případě, že si do adresy dosadím nějakou stránku ze switch (např. ?page=news), pak to pracuje v pořádku. Když ale dosadím název stránky z databáze (?page=zkusebni-clanek), pak to háže tuhle chybu: Fatal error: require() [function.require]: Failed opening required '' (include_path='.') in /DISK3/WWW/herniweb.cz/gothic/gothic3.php on line 241 Nevíte někdo, kde je problém? Typuju to na logickou chybu :( |
||
Nox Profil |
#2 · Zasláno: 23. 5. 2008, 12:37:41 · Upravil/a: Nox
Zkoušel jsi tu proměnnou $url vypsat před tím require? Resp. třeba ji vypiš jednak hned po vytáhnutí z databáze a jednak před require, jestli je špatně už z vytáhnutí z databáze, nebo se to ztratí/pomrví někde cestou
|
||
Kalby Profil |
#3 · Zasláno: 23. 5. 2008, 12:38:50 · Upravil/a: Kalby
no problem bude nejspis v te funkci require, zkus si vypsat promenou url jak vypada, mozna pokud se ti vklada novinky.php, nemas uz je nahodou jednou includovany na strance?
edit: o fous dyl no |
||
Holy.day Profil * |
#4 · Zasláno: 23. 5. 2008, 12:40:58
Kromě toho erroru se v obsahový části nic dalšího už nevloží. $url jsem zkoušel vypsat hned po
$url = $nalezeny_zaz["Url"] |
||
Holy.day Profil * |
#5 · Zasláno: 23. 5. 2008, 12:42:14
Kromě toho erroru se v obsahový části nic dalšího už nevloží. $url jsem zkoušel vypsat hned po
$url = $nalezeny_zaz["Url"] |
||
Kalby Profil |
#6 · Zasláno: 23. 5. 2008, 12:42:17
tak zakomentuj tu funkci require!!!!
|
||
Holy.day Profil * |
#7 · Zasláno: 23. 5. 2008, 12:44:33
Hotovo. $url nic nevypisuje, tak bude chyba asi někde v dotazu
|
||
Kalby Profil |
#8 · Zasláno: 23. 5. 2008, 12:45:39
nejspis
|
||
Mastodont Profil |
#9 · Zasláno: 23. 5. 2008, 12:48:37
WHERE 'Case' LIKE Co je 'CASE' ?? |
||
Holy.day Profil * |
#10 · Zasláno: 23. 5. 2008, 12:51:19
|
||
Měsíček Profil |
#11 · Zasláno: 23. 5. 2008, 12:56:58
Klíčová (rezervovaná) slova, mohou být názvy řádků? :)
|
||
Mastodont Profil |
#12 · Zasláno: 23. 5. 2008, 13:00:09
Case v jednoduchých apostrofech je bráno jako hodnota, nikoli jako název sloupce. Identifikátor názvů sloupců, tabulek apod. v MySQL je AFAIK backtick (Alt + 96).
|
||
Timy Profil |
#13 · Zasláno: 23. 5. 2008, 13:02:10 · Upravil/a: Timy
Měsíček
Jn, ale musíš to pak psát v apostrofech (teda takových těch `SQL apostrofech` — zpětný apostrof nebo jak se tomu nadává). V C taky můžeš napsat "for" :-) |
||
Holy.day Profil * |
#14 · Zasláno: 23. 5. 2008, 13:03:53
Děkuji, s vysokou pravděpodobností to bylo ono, protože $url to už vypisuje. Tyhle nenapádný chyby (i když o tomhle jsem fakt nevěděl) bývají nejzákeřnější :)
|
||
Časová prodleva: 16 let
|
0