Autor Zpráva
janhuska
Profil
Dobre rano,
neporadil by nekdo se zapisem dotazu v php? Predavam promennou $rok a podle ni jsou pojmenovane tabulky .. a nemuzu ho do dotazu dostat :(

$dotazpriprava = "SELECT 2013tab.cislo As 13tab, 
.'$rok'.sale.do As 13sale, 
2013kat.kate As 13kat, 
atd..
jenikkozak
Profil
Jde o obyčejné dosazení proměnné do řetězce, nehledej v tom zvláštní vědu.
Čísla v názvech tabulek zavánějí chybně navrženou databází.
Tabetha
Profil
nestačilo by?

$dotazpriprava = "SELECt 2013tab.cisla As 13tab, $rok.sale.do As 13sale, ...
janhuska
Profil
Tabetha:
tohle mi právě také píše chybu :(

right syntax to use near '.sale.do As .....
Joker
Profil
janhuska:
A jak vypadá celý výsledný dotaz, který se posílá do databáze (tj. už s nahrazenými proměnnými)?
janhuska
Profil
$dotazpriprava = "SELECT 2013tab.cislo As 13tab, 
2013sale.do As 13sale, 
2013kat.kate As 13kat 
FROM stav ";

V tomhle stavu rucne zadany to jede
Joker
Profil
janhuska:
Ten dotaz vybírá sloupce z tabulek 2013tab, 2013sale a 2013kat, ale žádné takové tabulky nejsou v části FROM.
janhuska
Profil
Joker:

omluva .. zkopiroval sem jiney pokus :(

$dotazpriprava = "SELECT 2013tab.cislo As 13tab, 
2013sale.do As 13sale, 
2013kat.kate As 13kat 
FROM 2013sale, 2013kat ";



tak naposled :)

$dotazpriprava = "SELECT 2013tab.cislo As 13tab, 
2013sale.do As 13sale, 
2013kat.kate As 13kat 
FROM 2013sale, 2013kat, 2013tab ";
Joker
Profil
janhuska:
A tenhle dotaz hází tu chybu? Podle mě nehází a ten předtím ji házel proto, že tam byla navíc tečka 2013.sale.do As 13sale,.

Jinak ale pravděpodobně to je špatně navržená databáze (viz [#2] jenikkozak) a jen těžko si umím představit, že by tenhle dotaz něco smysluplného vybíral.
janhuska
Profil
takhle to jde .. ale jak to chci pres $rok

$rok.sale.do tak je to s hlaskou


rok predam odkazem
index.php?rok=2013

prijmu ho
@$rok = $_GET['rok'];
Kajman
Profil
Stále tam máte navíc zmíněnou tečku.
janhuska
Profil
je to jednoucelovy skript na vyjete tabulky, ty se hodi na konci roku do zalohy a uz se s nima nikdy nebude pracovat .. proto bych tam zadny navrh databaze momentalne nehledal.

Smysluplnost tam neni .. je tam radek navic .. ale tomu ze se provede to tet nebrani .. jen potrebuju predat ten rok




Kajman:

$rok sale.do

myslite tuhle? to je to same :(
Kajman
Profil
Odstranil jste nadbytenčou tečku a přidal nadbytečnou mezeru. Zkuste
"... {$rok}sale.do ..."

A taky si zkuste o databázích něco přečíst, ať příště nevymýšlíte nesmyslnná řešení.
Joker
Profil
Kajman:
Stále tam máte navíc zmíněnou tečku.
No je fakt, že když vynechá tečku, nebude mu to fungovat taky, protože zas PHP nepozná tu proměnnou.
Shodou okolností zrovna včera jsem tu psal názor, že začátečníci by raději neměli interpolaci proměnných používat.

janhuska:
Ten úplně první dotaz byl v podstatě správně, jen tam byly špatně uvozovky a tečky na jejich špatné straně:
"SELECT 2013tab.cislo As 13tab, .'$rok'.sale.do As 13sale, (…)
Správně:
"SELECT 2013tab.cislo As 13tab, ".$rok."sale.do As 13sale, (…)

Jinak kromě toho:
prijmu ho
@$rok = $_GET['rok'];
Sem zas nepatří zavináč.

Smysluplnost tam neni .. je tam radek navic .. ale tomu ze se provede to tet nebrani .. jen potrebuju predat ten rok
Když ten dotaz nedává smysl, tak proč ho vůbec provádět?

je to jednoucelovy skript na vyjete tabulky, ty se hodi na konci roku do zalohy a uz se s nima nikdy nebude pracovat
A na co je v tomhle potřeba dotaz, který vrátí všechny kombinace dat v těch tabulkách?
Pokud by každá z těch tabulek obsahovala dva řádky a ten hledaný sloupec v nich měl hodnoty 1 a 2, bude výsledek:
13tab | 13sale | 13kat
  1   |  1   |  1   
  1   |  1   |  2   
  1   |  2   |  1   
  1   |  2   |  2   
  2   |  1   |  1   
  2   |  1   |  2   
  2   |  2   |  1   
  2   |  2   |  2   
K čemu to je dobré?
janhuska
Profil
Joker:
Dekuji za pomoc.

.. nejsem tak sileny jak ten dotaz vypada :o) jeste je tam spoustu WHERE A ORDER BY .. proste jsem zjednodusoval aby ste to nemuseli cele cist.

J.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0