Autor | Zpráva | ||
---|---|---|---|
miksuck Profil |
#1 · Zasláno: 19. 11. 2014, 19:14:12
Dobrý den,
odpověď jsem hledal již zde na fóru, ale po týdnu neúspěšných pokusů jsem se rozhodl napsat sem. Potřeboval bych poradit nějaký jednoduchý skript (PHP), který by vyhledával v databázi a vypisoval výsledky na základě vstupu z formuláře. Příklad - mám databázi o dvou proměnných, v jedné je uložený pojem, ve druhé jeho definice. Na stránce bych měl formulář, kde by bylo pole, do kterého bych napsal daný pojem, a button vyhledat. Nejlepší by byl našeptávač, aby byly vidět dané pojmy. Snad chápete můj dotaz. Prosím o velmi jednoduchý skript. Děkuji |
||
bestik_63 Profil |
ahoj tipl bych si, že moc zkušeností s programováním nemáš, takže bych ti našeptávač moc nedoporučil. To už je trochu vyšší dívčí. Také potřebuješ nějaké statistické data abys měl z čeho našeptávat :-)
Co se týče toho vyhledávání: vyhledávání v databázi (MYSQL) uděláš příkazem SELECT * FROM "jméno tabulky" WHERE pojem LIKE %$_POST['pojem']% (% zastupuje libovolný počet znaků, $_POST['pojem'] je hodnota z INPUT formuláře). DO PHP to dáš např. takto: $link = mysql_connect('localhost', 'mysql_user', 'mysql_password'); if (!$link) { die('Could not connect: ' . mysql_error()); } echo 'Connected successfully'; $result = mysql_query('SELECT * FROM "jméno tabulky" WHERE pojem LIKE %'.$_POST['pojem'].'%;'); if (!$result) { die('Invalid query: ' . mysql_error()); } else{ while ($row = mysql_fetch_assoc($result)) { echo $row["pojem"]; //zde se vypisují výsledky hledání } } mysql_close($link); příkazy neodzkoušeny, snad to bude přesně, je to z manuálu PHP |
||
jefitto44 Profil |
#3 · Zasláno: 20. 11. 2014, 08:13:20
Odporúčam používať mysqli_ funkcie
|
||
juriad Profil |
#4 · Zasláno: 20. 11. 2014, 08:31:48
jefitto44:
Ony jsou v bestikově příspěvku vážnější chyby: 1) jméno tabulky se nepíše do uvozovek (jako v Oracle), ale buď bez ohraničení, nebo mezi zpětné apostrofy 2) LIKE vyžaduje řetězec, nikoli literál začínající a končící procentem 3) kód spoléhá, že uživatel nevyhledá nic nebezpečného, je třeba ošteřit $_POST['pojem']
A pak ještě: 4) mysql_close není obvykle potřeba a jeho použítí může způsobit chyby (když si omylem zavřeš spojení příliš brzy) 5) die rozhodně není dobrý způsob oznamování chyb Zrovna to použití mysql_* bych odpustil. |
||
Časová prodleva: 9 let
|
0