Názory ke článku PHP & MySQL – Vyhľadávanie na stránke
caute, preco sa musi pisat v tom sql dotaze aj percento?
like '%".addslashes(htmlspecialchars($_post['search']))."%'
Clanek se me moc nelibi.
Jako nadpis clanku je "PHP & MySQL – Vyhľadávanie na stránke", ale kde je tedy podrobneji vysvetleno vyhledavani?
Jedine vyhledavani je zde pouziti operatoru LIKE, ktery neni zrovna to nejlepsi reseni, hlavne jedna li se o vetsi databazi.
Nicmene neni zde vysvetlena syntaxe tohoto operatoru a ani jeho pouziti. Je zde jenom hotove reseni jednoho vyhledavani, ketere je temer nepouzitelne, kvuli tomu jak je pomale.
Dale funkce sformatovat, kterou autor asi vymyslel: tato funkce je napsana priserne. Autor by si mel sam nastudovat funkci printf, ktera se pouziva pro formatovany vystup, a u ktere si muze nastavit nekolik direktiv s jejihz pomoci bude provedeno formatovani. Printf neni ovsem jedina funkce, ktera jde pouzit. Takovych funkci je daleko vic (napriklad number_format, ktera je primo pro tyto ucely vytvorena).
Dalsi co me docela zarazilo je cast kodu:
while($rows=@mysql_fetch_array($mysql_query)) {
$stat=$rows['stat'];
$hlavne_mesto=$rows['hlavne_mesto'];
$pocet_obyvatelov=$rows['pocet_obyvatelov'];
nechapu proc vyberete data z databaze, priradite je do dalsich promennych a potom je stejne vypisete. Veskera vybrana data se potom kopiruji jeste jedou a uplne zbytecne. Zabira se tim dalsi misto v pameti na serveru.
A kdyz uz se chces zabyvat takovyma vecma jako je formatovani cisel, tak uz bys mohl i spravne osetrit SQL dotaz.
Prijdou sem uzivatele, kteri si zdrojak zkopiruji a budou se divit proc jim nefunguje spravne. Bude to mozna zpusobeno funci addspashes, kterou ty pouzivas bez toho, aby sis radeji nejprve zjistil nastaveni na serveru. Zase je zde napriklad funkce get_magic_quotes_gpc.
No a pokud se tedy jedna o hotove reseni, tak by nebylo spatne doplnit SQL dotaz alespon o nejaky LIMIT a razeni.
Preji hodne zdaru pri opravovani nebo psani dalsiho clanku.
Jojo,
proč je titulek "PHP & MySQL – Vyhľadávanie na stránke"?
Hledal jsem informace o vyhledávání na stránce (čili fulltext na webové stránce) a místo toho najdu toto.
A vůbec, já vím, že chceš začátečníkům pomoci. Ale takhle jim poravdu nepomůžeš. Začínal jsem před lety úplně stejně. A časem jsem zjistil, že musím překopat celou část kódu, která pracuje s databází, protože se to takhle prostě dělat nedá.
HTML zdroj je v podstatě také špatný, formulář je formulář a tabulka je tabulka. Takto jen naučíš začátečníky své zlozvyky. Oni ti sice teď děkují - protože potřebují rychle bez jakýchkoli znalostí nabušit nějaký kód (a vydávat ho pak za vlastní a machrovat před kamarádama, v extrémních případech se pak dokonce prohlašovat za PHP programátora a webdesignera a otevřít si webdesign studio:)).
Ale za nějakou chvíli snad i oni pochopí, jak byli hloupí a líní a s děkováním bude konec.
I když, asi ne pořád - stále se rodí noví lidé, kterým tyto stránky asi mají co nabídnout.
Kdysi jsem psal také vyhledávání v php z mysql db a musím říct, že to mám mnohem jednodušeji, zhruba o polovinu kratší.
6. 12. 2006
Hlavně je vhodné pro vyhledávání použít MySQL fulltext a ne porovnávání. Výsledky pak lze řadit i podle relevance. Ale jinak přeju hodně štěstí při učení sebe i druhých.
6. 12. 2006
Procento značí wildcard, tj.
%kol bude hledat jenom pred, jako "drtikol",
kol% zase za slovem, tj např. "koloběžka".
%kol% najde i "drtikoloběžku",
kol najde jenom záznam ve kterém je přesně kol
Ale jinak
25. 5. 2007
celý článek jsem pročetl a nemohl jsem najit SQL tabulku. kdyžtak mi ji pošlete na E-mail prosím díky moc
27. 8. 2007
Ja som zaciatocnik, vypada to mozno pekne, ale nefunguje mi to ani po 2 hodinach:
a) tabulka - ukazuje mi chybu undefined id (ale ukaze sa). Ja som si urobil hTML-tabulku s while a for a tabulka je v poriadku bez chyby.
b) formular mi nefunguje - jedine ak robim chybu, ze mozno som si mal dosadit za $_server['PHP-SELF'] nejaku svoju cestu (obdobne ako si davam heslo) - to ale ako zaciatocniknemoze vediet
Undefined variable: _server in C:\ComplexWebServer\http_docs\hlavne_mesta.php on line 26
Notice: Undefined index: search in C:\ComplexWebServer\http_docs\hlavne_mesta.php on line 70
•utujeme, ale nezadali ste §iaden text
Reagoval na komentář od uživatele pin2k : a adresa by nebyla? Nejaké jednodušší bez ochrany proti SQL injection by se mi hodilo.
23. 2. 2009
preco mi to nejde sak som to cele skopiroval a dal ako serch.php a aj tak mi to nejde a databaza.inc.php mam nastavenu spravne to viem,
29. 9. 2009
Ten kod je ekny bordel ten kod. Nakolko je to funkcne davam tomu plus. Ked sa v tom nejaky zaciatocnik vyzna aspon sa nauci :) dufam ze nie zlym zvikom
3. 1. 2011
v praxi nepouzitelny kod... ak chcel vysvetlit ako pracuje like stacilo na to par riadkov.