Autor | Zpráva | ||
---|---|---|---|
Milan_456 Profil * |
#1 · Zasláno: 16. 4. 2013, 14:47:29
Dobrý den,
rád bych se zeptal jakým způsobem lze porovnat část údaje uloženého v databázi s údajem vyplněným ve formuláři. Tzn. V databázi mám uloženou tabulku produkty a v ní řádek název - např. Růžové mýdlo, žluté mýdlo. Uživatel ve formuláři vyplní Růžové mýdlo a já bych chtěl, abych mu mohl nabídnout další např. žluté mýdlo. Čili jak porovnat část údaje "mýdlo" a vypsat poté i další údaje které obsahují hledaný výraz mýdlo. S výpisy si poradím ale to porovnávání mi dělá problém. Předem děkuji. Milan |
||
Joker Profil |
#2 · Zasláno: 16. 4. 2013, 15:02:52
Milan_456:
„jakým způsobem lze porovnat část údaje uloženého v databázi s údajem vyplněným ve formuláři“ Tahle otázka v první řadě vypadá na špatný návrh databáze, konkrétně více hodnot ve sloupci. Pokud to tak není a jde čistě o vyhledání řetězce v textu, dá se použít sloupec LIKE '%text%'
|
||
Monkeys Profil * |
#3 · Zasláno: 16. 4. 2013, 15:24:54
Milan_456:
Prave dnes om nieco podobne riesil takze sa podelim: dotaz do databazi: public function overSuciastku($suciastka){ $res = $this->database->MyQuery("SELECT nazov FROM suciastky WHERE nazov='".$this->database->EscapeString($suciastka)."'"); return $this->database->AffectedRows(); } a niekde v php to testuj if($this->suciastka == 0){ //zapis do db }else{ //error } M. |
||
Joker Profil |
#4 · Zasláno: 16. 4. 2013, 15:39:06
Monkeys:
Tohle nebude fungovat a neřeší to problém, na který se ptá Milan_456. |
||
Monkeys Profil * |
#5 · Zasláno: 16. 4. 2013, 17:01:00 · Upravil/a: Monkeys
Joker:
No myslel som to tak ze chce hladat duplicity. tak potom takto neako: public function overProdukt($mydlo){ $res = $this->database->MyQuery("SELECT nazov FROM mydla WHERE nazov LIKE '%".$this->database->EscapeString($mydlo)."%'"); return $res->fetch_assoc(); } M. samozrejme by sa to malo volat z neakoeho cyklu M. |
||
Milan_456 Profil * |
#6 · Zasláno: 16. 4. 2013, 18:59:00
[#2] Joker
no mám prakticky tabulku "mydla" v nem sloupce id,produkt,popis atd." A vněm vlastně v řádcích jednotivé údaje 1 / růžové mýdlo s bylinkou / popis 2 / růžou mýdlo s kořením / popis mýdla A tedy pokud bych chtěl vyhledávat "růžové mýdlo" tak v selektování bude tedy $sql= SELECT * FROM mydla LIKE '%růžové mýdlo%'; ?
|
||
Tori Profil |
#7 · Zasláno: 16. 4. 2013, 23:18:15
Dalo by se to vyřešit i tím, že si produkty roztřídíte do skupin a pak budete jen nabízet (náhodné) další produkty ze stejné skupiny. (= další sloupeček do tabulky produktů s ID skupiny)
|
||
Milan_456 Profil * |
#8 · Zasláno: 17. 4. 2013, 08:10:27
[#7] Tori
nad tím jsem taky přemýšlel ale dospěl jsem k záběru že to tak dělat nechci... |
||
Joker Profil |
#9 · Zasláno: 17. 4. 2013, 09:05:45
Tori:
Druhá možnost je mít štítky. Co je lepší či horší závisí na situaci. Milan_456: „dospěl jsem k záběru že to tak dělat nechci“ K tomu jedna otázka: „mám prakticky tabulku "mydla"“ A jsou tam analogicky i další takové tabulky? Není to náhodou tak, že existují produkty rozdělené do tabulek podle jakýchsi „skupin“? |
||
Milan_456 Profil * |
#10 · Zasláno: 17. 4. 2013, 10:43:37
[#9] Joker
V databázi mám další tabulky ale chci vyhledavat pouze v tabulce mydla... zkoušel jsem řešení $sql= SELECT * FROM mydla WHERE ( 'produk' LIKE '%".$hledano."$')"; |
||
Časová prodleva: 11 let
|
0