IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
michal Čepelák:19.9.2018 7:31

Zdravím,
mám tabulku kde mám sloupec id_skladu kde jsou hodnoty all, sklad, prijem,vydej.
A potřeboval bych udělat přes select abych vybiral přes WHERE id_sklad=all AND id_sklad='$hodnota' ale takle mi to nechce fugnovat. Potřebuji aby id_sklad=all bylo vždy a k tomu to vybiralo z formuláře podle toho co je zadáno v $hodnota (sklad, prijem, vydej).

Děkuji za rady

 
Odpovědět
19.9.2018 7:31
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:19.9.2018 8:07

Nerozumim logice.

sloupec id_skladu = ['all' OR 'sklad' OR 'prijem' OR 'vydej']
WHERE id_sklad='all' AND id_sklad='$hodnota'

Chapej, pokud je id_sklad jedna z hodnot, podle zadani, pak nemuze nabyvat dvou hodnot soucasne, jako tlacis do podminky.
Mozna chces vybrat vse, kde je id_sklad=all a pridat jeste vse, kde id_sklad=hodnota. V tom pripade by ale podminka byla

-- WHERE id_sklad='all' AND id_sklad='$hodnota'
WHERE id_sklad='all' OR id_sklad='$hodnota' -- nebo
WHERE id_sklad IN ('all', '$hodnota')
Editováno 19.9.2018 8:08
 
Nahoru Odpovědět
19.9.2018 8:07
Avatar
Odpovídá na michal Čepelák
Daniel Horák:19.9.2018 8:12

A co takhle?

WHERE id_sklad IN ('all', '$hodnota')
 
Nahoru Odpovědět
19.9.2018 8:12
Avatar
Michal Haňáček:19.9.2018 8:24

Než začnete implementovat ty IN klauzule, doporučuju si prověřit jestli RDBS který používáte vyhledává přes IN indexně ;-) ...

Nahoru Odpovědět
19.9.2018 8:24
Každé rozhodnutí a každý krok v životě nás někam posune. Bohužel jen některé nás posouvají dopředu.
Avatar
michal Čepelák:19.9.2018 9:01

pokud použiji mysql_query tak mi to funguje ale nevím jak to nacpat do PDO (použivám místní PDO)
zkoušel jsem toto ale to mi nejde

$dily = Db::queryAll('SELECT * FROM sklad WHERE del=0 AND  id_skladu IN ('all',?) ' $
hodnota );

Děkuji za radu
 
Nahoru Odpovědět
19.9.2018 9:01
Avatar
Jirka
Člen
Avatar
Odpovídá na michal Čepelák
Jirka:28.9.2018 19:48

Nevadí tomu ty stejné uvozovky?

Nahoru Odpovědět
28.9.2018 19:48
Kdo nic nedělá, nic nezkazí.
Avatar
Jirka
Člen
Avatar
Odpovídá na michal Čepelák
Jirka:28.9.2018 20:02

Nemá to být například takto?

$dily = Db::queryAll('SELECT * FROM sklad WHERE del=0 AND  id_skladu IN (\'all\',?) ' $
hodnota);
Nahoru Odpovědět
28.9.2018 20:02
Kdo nic nedělá, nic nezkazí.
Avatar
petr.jouza
Člen
Avatar
Odpovídá na michal Čepelák
petr.jouza:30.9.2018 8:54

Ahoj,
pokud používáš místní PDO, tak to 'all' nesmíš mít přímo v tom dotazu.

Udělej to takto:

$dily = Db::queryAll('SELECT * FROM sklad WHERE del = ? AND id_skladu IN (?, ?)', 0, 'all', $hodnota) ;

Takto to musí fungovat.

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
30.9.2018 8:54
Avatar
Odpovídá na petr.jouza
michal Čepelák:30.9.2018 19:56

Děkuji už to funguje

 
Nahoru Odpovědět
30.9.2018 19:56
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 9 zpráv z 9.