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í.

Diskuze: Syntaxe SQL a PHP - jak vložit pomocí PHP do SQL extra WHERE

V předchozím kvízu, Online test znalostí SQL a databází, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Kara
Člen
Avatar
Kara:7.6.2017 15:31

Dobrý den,

chtěla bych poradit, popř. odkázat na nějaký článek na netu, kde bude pěkně vysvětlená syntaxe SQL a PHP. (kod jsem zjednodusila pro prehlednost).

Původně jsem měla kod

$polozky = Db::queryAll ( "SELECT content.date,con­tent.num FROM content WHERE kategorie=?

UNION ALL SELECT video.date,vi­deo.num FROM video WHERE kategorie=?

ORDER by date DESC",$kateg,$ka­teg);

Potřebuji kod rozdělit na 2 části, přitom bych ráda zachovala syntaxi, kdy se za proměnné dává otazník a proměnné se pak dávají až na konec dotazu, kvůli bezpečnosti. Lze to nějak provést? Dole přikládám, jak jsem to jakoby myslela, bohužel mne nenapadá, jak to provést.

$polozky = Db::queryAll ( "SELECT content.date,con­tent.num FROM content WHERE kategorie=?",$ka­teg);

$polozky .= Db::queryAll ("UNION ALL SELECT video.date,vi­deo.num FROM video WHERE kategorie=?
ORDER by date DESC",$kateg);

Rozdělení potřebuji kvůli tomu, že bych tam ráda vložila podmínku, if xxx ........přidej do SQL dotazu WHERE ...... zkoušela jsem to řešit i přes OOP a to mi také nešlo :/

takže bych uvítala nejen Vaši pomoc, ale i doporučení, co si třeba pročíst (může být i v aj), jak SQL dotazy sestavovat pomocí OOP PHP a různě obměnovat, prohledala jsem internet a nic moc jsem nenašla :/ děkuji

 
Odpovědět
7.6.2017 15:31
Avatar
kaskader202
Člen
Avatar
Odpovídá na Kara
kaskader202:7.6.2017 16:05

Ahoj, asi bych ten dotaz skládal do proměnné, není to uplně ideální řešení, ale fungovat byto mělo.

$sql ='SELECT content.date,content.num FROM content WHERE kategorie=? ';
if (..)  {
$sql .= 'UNION ALL SELECT video.date,video.num FROM video WHERE kategorie=?
ORDER by date DESC';
}
Db::queryAll($sql,array($kateg,$kateg));
Editováno 7.6.2017 16:05
 
Nahoru Odpovědět
7.6.2017 16:05
Avatar
Kara
Člen
Avatar
Kara:7.6.2017 16:09

nj, to me nenapadlo, dekuji :)

 
Nahoru Odpovědět
7.6.2017 16:09
Avatar
Kara
Člen
Avatar
Kara:7.6.2017 16:32

bohuzel to nefunguje :/

 
Nahoru Odpovědět
7.6.2017 16:32
Avatar
kaskader202
Člen
Avatar
Odpovídá na Kara
kaskader202:7.6.2017 16:39

Jak nefuguje, vypsalo to nejakou chybu ?

 
Nahoru Odpovědět
7.6.2017 16:39
Avatar
Kara
Člen
Avatar
Kara:13.6.2017 11:20

ano :/ bohuzel ted uz nevim jakou, nakonec jsem to udelala uplne jinak, ale dekuji za napad

 
Nahoru Odpovědět
13.6.2017 11:20
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 6 zpráv z 6.