Autor | Zpráva | ||
---|---|---|---|
vlcekp1 Profil |
Zdravím.
Jak jsem se již možná zmínil, dělám si takový malý blogovací systém. Bohužel došlo i na vyhledávač, jenže s ním mám menší problém. Nic mi nevyhledá. Pro jistotu posílám celý kód. <html> <head> <title>Vyhledávání</title> </head> <body> <? require_once "spojeni.php"; $search=$_POST['search']; if ($search=="") { echo "<br>Vyhledávání<br>"; } else if ($search=="".$titulek."") { $vysledek = mysql_query("SELECT * FROM $tabulka1 ORDER BY titulek"); $zaznam = mysql_fetch_array($vysledek); $title=$zaznam['titulek']; echo "<br>Výsledky hledání<br>"; echo "<p><a href='blog/vypisclanku.php?id="; echo $zaznam["id"]; echo "'>"; echo "$title"; echo "</a><br> "; } ?> <form action="search.php"> method="post"> <label for="search">Vyhledat:</label> <input type="text" name="search" id="search"> <input type="submit" value="hledat"> </form> </body> </html> Kvůli odečítači prosím nepoužívejte zvírazňování chybného kódu. Raději pošlete upravený kód celý. Můj odečítač má totiž problém s kopírováním částí textu. Díky. Skript má prohledat celou tabulku článků a pokud najde slovo, které návštěvník najde, získá jeho id a odkáže ho na ten výpis článků. Děkuji za jakoukoli pomoc. Ještě mi chybí stránkování a pak to bude všechno. Všiml jsem si chyby s $titulek, ale oprava na $title nepomohla. Tak jsem si všiml ještě jedné blbosti. Ale ani takhle mi to nefunguje. <html> <head> <title>Vyhledávání</title> </head> <body> <? require_once "spojeni.php"; $search=$_POST['search']; $vysledek = mysql_query("SELECT * FROM $tabulka1 ORDER BY titulek"); $zaznam = mysql_fetch_array($vysledek); $title=$zaznam['titulek']; if ($search=="") { echo "<br><h1.Vyhledávání</h1><br>"; } else if ($search=="".$title."") { echo "<br>Výsledky hledání<br>"; echo "<p><a href='blog/vypisclanku.php?id="; echo $zaznam["id"]; echo "'>"; echo "$title"; echo "</a><br> "; } ?> <form action="search.php"> method="post"> <label for="search">Vyhledat:</label> <input type="text" name="search" id="search"> <input type="submit" value="hledat"> </form> </body> </html> Možná bude lepší ta slova hledat v článku, nebo kdybyh věděl, jak udělat např toto: echo $zaznam['clanek'] zobraz jen 25 znaku, tak bych ten vyhledávač ještě trošku upravil. Moderátor Chamurappi: Zápis kódu do [prenone]kód[/pre] nevyvolává zvýrazňování.
|
||
sicario Profil |
#2 · Zasláno: 26. 1. 2009, 12:44:39
At koukam jak koukam, zadny pokus o vyhledani v DB tam nevidim. Vzdyt se obsah promenne $_POST['search'] vubec nepromitne do SQL dotazu. Kde je vlastne definovana promenna $tabulka1?
BTW co je to "odecitac" a proc neuzaviras zdrojovy kod do [ pre] ... [ /pre] ? |
||
vlcekp1 Profil |
#3 · Zasláno: 26. 1. 2009, 12:53:04
No to jsou ty mé pokusy.
Myslel jsem, že bude stačit porovnat ten zaslaný dotaz s tabulkou, ale asi ne. Odečítač je program, který čte evidomým to, co je na obrazovce. Kdybych kódy uzavíral, tak by mi odečítač nepřečetl téměř nic. Z řádků bi mi tvořil odkazy a další blbosti. |
||
habendorf Profil |
#4 · Zasláno: 26. 1. 2009, 13:21:41
„Z řádků bi mi tvořil odkazy a další blbosti.“
Teď jsem zkoušel přečíst nějaký zdrojový kód na této diskuzi pomocí NVDA a máš pravdu. Nejde ale o blbosti, ten odečítač to čte správně, protože každá funkce ve zvýrazněném kódu je zároveň odkazem na její popis v manuálu. Ale chápu, že pro tebe je to nevhodné. |
||
vlcekp1 Profil |
#5 · Zasláno: 26. 1. 2009, 13:24:21
Nevhodné to je, protože můj odečítač winmonitor ještě navíc používá vlastní způsob kopírování do schránky, pokud není označen celý text.
Takže mi pokud je v souboru napsáno index.php, tak on mi to při vkládání do poznámkáče napíše jako index .php, takže to ještě musím opravovat. |
||
vlcekp1 Profil |
#6 · Zasláno: 26. 1. 2009, 13:24:54
A teď jsem zjistil, že to i tak dokonce čte.
|
||
habendorf Profil |
#7 · Zasláno: 26. 1. 2009, 13:25:34
Tohle ti pomůže: Na začátku stránky je odkaz "Vypni barvení". Pak čte odečítač kód v [ pre] jako prostý text. Třeba to využiješ v jiných vláknech na zdejší diskuzi.
|
||
habendorf Profil |
#8 · Zasláno: 26. 1. 2009, 13:31:50
Který chytrý moderátor dal to pre?
|
||
Chamurappi Profil |
#9 · Zasláno: 26. 1. 2009, 13:47:30
Reaguji na vlckap1:
Upravil jsem teď tvůj příspěvek, aby jej zdejší zvýrazňovač kódu přehlížel. Doporučuji ale, aby sis vypnul barvení na své straně dle habendorfovy rady. Chyba bude zřejmě v HTML kódu. Počáteční značku formuláře máš asi dříve ukončenou, většítko máš hned za action="search.php". Následující atribut, tedy method="post", už je mimo značku, takže ho prohlížeč nebere v úvahu a užívá na odeslání metodu GET. |
||
vlcekp1 Profil |
#10 · Zasláno: 26. 1. 2009, 14:52:37
Jejky to mě nenapadlo. Pokud jsou dotazy v pořádku, tak to bylo asi jen tím.
|
||
vlcekp1 Profil |
#11 · Zasláno: 26. 1. 2009, 19:36:40
Všem děkuji za pomoc.
Ještě je tu jedna věc. Neumím použít podmínku or. <html> <head> <title>Vyhledávání</title> </head> <body> <? require_once "spojeni.php"; $search=$_POST['search']; $kde=$_POST['kde']; if ($kde=="menu/page.php") $tabulka="$stranky1"; else $tabulka="$tabulka1"; $vysledek = mysql_query("SELECT * FROM $tabulka ORDER BY titulek"); $zaznam = mysql_fetch_array($vysledek); $title=$zaznam['titulek']; $text=$zaznam['clanek']; if ($search=="") { echo "<br><h1>Vyhledávání</h1><br>"; } else if ($search=="".$title."" and $search=="".$text."") { echo "<br>Výsledky hledání výrazu $search<br>"; echo "<p><a href='$kde?id="; echo $zaznam["id"]; echo "'>"; echo "$title"; echo "</a><br> "; } else echo "Na váš dotaz $search nebylo nic nalezeno."; ?> <form action="search.php" method="post"> <label for="search">Vyhledat:</label> <input type="text" name="search" id="search"> <label for="kde">Kde hledat?</label> <select name='kde' id='kde'> <option selected value='menu/page.php'>Na stránkách></option> <option value='blog/vypisclanku.php'>Na blogu></option> </select> <input type="submit" value="hledat"> </form> </body> </html> Chtěl jsem tí říct, že pokud se to sloo najde i v článku, tak se má zobrazit, že se to taky našlo jako titulek. Jinak úpravy, které jsem během odpoledne provedl mi jinak fungují. |
||
vlcekp1 Profil |
#12 · Zasláno: 26. 1. 2009, 19:37:40
Vím, že místo slova and jsem tam měl dát or, ale na tomto fóru mi nejdou upravovat příspěvky.
Ve scriptu mám už napsané slovo or. |
||
Časová prodleva: 15 let
|
0