Autor | Zpráva | ||
---|---|---|---|
Peet Profil |
#1 · Zasláno: 13. 11. 2012, 20:11:49
Dobrý den potřebuji vědět jak mám udělat aby mi z daného sloupce vypsal vše.
SELECT * FROM table WHERE sloupec LIKE '%string%' toto mi nefunguje potom jsem ještě zkoušel SELECT * FROM table WHERE sloupec LIKE '%%' to taky nefunguje.. nevíte někdo jak na to ? |
||
Rellik Profil |
#2 · Zasláno: 13. 11. 2012, 20:29:38
A co takhle:
SELECT * FROM table WHERE sloupec Případně NOT LIKE
|
||
Peet Profil |
ne mám obrovský dotaz kde se vyhledává spoustu věcí a potřebuji udělat co když nějaká proměnná nebude naplněná tak jak ji mám naplnit...
%string% - nejde %% - nejde další varianty ? dotaz: SELECT * FROM table WHERE sloupec1 LIKE '$sloupec1' AND sloupec2 LIKE '$sloupec2' AND sloupec3 LIKE '$sloupec3' AND .... co když proměná sloupec2 bude prázdná ? čím ji mám naplnit aby vyhledal v sloupci 2 vše ? |
||
Tori Profil |
#4 · Zasláno: 13. 11. 2012, 21:02:16
Tak tam tu část se sloupcem2 vůbec nedávejte.
|
||
Peet Profil |
#5 · Zasláno: 13. 11. 2012, 21:03:21
Ale když bude proměnná naplněna tak CO ? buďot vyhledá když v ní něco bude a když ne tak musí vyhledat vše..
|
||
Rellik Profil |
#6 · Zasláno: 13. 11. 2012, 21:05:51
Peet:
„co když proměná sloupec2 bude prázdná ? čím ji mám naplnit aby vyhledal v sloupci 2 vše ?“ Přečti si co jsi napsal za dotaz a zkus si odpovědět... Ptáš se dost nesmyslně. Čím máš něco naplnit aby to našlo vše? Asi nějakým obsahem? Jakým? To bys měl vědět spíš ty ne? Tak prostě prohledávej rovnou všechno i když nějak pořád nemůžu pochopit o co se vlastně snažíš... |
||
Peet Profil |
#7 · Zasláno: 13. 11. 2012, 21:11:22
Sakra lidi co je an tom složitého ..
představte si rozšířené vyhledávání kde máte např. 10 věcí dle kterých chcete prohledávat dotaz bude potom těch 10 věcí pospojováno ANDem .. okej.. ale co když jednu z věcí nebo dvě nebo tři to už je jedno uživatel nevyplní neboli zadá třeba v selectu --- Nerozhoduje --- asi těžko když v dotazu bude WHERE sloupec='---nerozhoduje---' bude tento sloupec ignorovat.. proto před dotazem zjišťuji které proměnné nejsou naplněny a do těch musím dát něco na způsob %string% neboli cokolivstringcokoliv a tudíž jakoby ignoruje tento sloupec.. ale tohle nefunguje proto hledám jiné řešení |
||
Tori Profil |
Peet:
Takhle nějak jsem to myslela: $where = array(); if ($sloupec1) $where[] = "sloupec1 LIKE '$sloupec1%'"; // doplnit escapování if ($sloupec2) $where[] = "sloupec2 > $sloupec2"; $sql = 'SELECT * FROM tabulka' . (!empty($where) ? ' WHERE '.implode(' AND ', $where) : ''); „neboli zadá třeba v selectu --- Nerozhoduje ---“ Tak danému prvku <option> dejte prázdnou hodnotu. |
||
Peet Profil |
#9 · Zasláno: 13. 11. 2012, 21:16:37 · Upravil/a: Peet
no řekl bych že je to příliš složité řešení pro takovou věc..
musí existovat něco přes ten regulární výraz který vlastně bude obsahovat vše.. když mu dám prázdnou hodnotu.. tak bude prohlédavat jen ty s prázdnou hodnotou.. což je přesný opak toho co požaduji.. |
||
Tori Profil |
#10 · Zasláno: 13. 11. 2012, 21:32:51
Peet:
„%% - nejde“ Teď jsem zkoušela a fungovalo mi to, sloupec LIKE '%' i LIKE '%%' našlo všechny řádky v tabulce. Jen mi to připadá zbytečné, aby databáze musela vyhodnocovat podmínku, která bude splněna vždy (ale možná je MySQL optimizer dostatečně mazaný a bude ji ignorovat, netuším).
|
||
Peet Profil |
#11 · Zasláno: 13. 11. 2012, 21:34:15
aj děkuji za pomoc.. chyba byla jinde.. omlouvám se
|
||
Časová prodleva: 11 let
|
0