Autor Zpráva
rikrek
Profil *
Dobrý den,

mám tento kod v procedure

  = 1 THEN
    select overview from `data_overview` where `data_id` = `dataID` and `language_id` = `langID`;
  else
    select overview from `data_overview` where `data_id` = `dataID` and `language_id` = `9`; 
  end if;

Bohužel mě vrací #1054 - Neznámý sloupec '9' v where clause a já už si fakt nevím rady :(

Ten neznámý sloupec to hází na `language_id` = `9` a fakt netuším proč

Budu rád za případnou pomoc,

Díky
Keeehi
Profil
Protože máš kolem devítky zpětné apostrofy. Smaž je a máš to. Zpětnými apostrofy můžeš databázi říct, ze se jedná o název sloupce, tabulky nebo databáze. Proto devítku považuje za sloupec.
rikrek
Profil *
Dekuji za rychlou reakci, bohuzel jsem to zkousel jiz pred tim, nez jsem psal. Pokud odstranim apostrofy dostanu se do této chyby

Při analýze bylo nalezeno 1 chyb.

Missing expression. (near "ON" at position 25)


a

#2014 - Commands out of sync; you can't run this command now

select za THEN se vykona, ale za else už to háže zmíněnou chybu.
Kajman
Profil
Ale ta nová chyba upozorňuje na jinou část procedury, než, kterou jste poslal. Pokud jste tam měl chyby dvě, tak nestačí opravit jednu.
rikrek
Profil *
Zde posílám celou, nevím zda jdu na to dobře, přeci jen, každý nějak začíná, ale nějak jsi nejsem vědom, že je zde chybka, chápu uřčitě by to šlo napsat jinak, to je mi jasné, ovšem jako pokus by to snad jet mělo. Když se provede if a zvolí se tedy select za then, tak to vypíše, pokud to skočí do else, tak už píše zmíněnou chybu...

begin
  if (select count(id) from `data_overview` where `data_id` = dataID and `language_id` = langID) = 1 THEN
    select overview from `data_overview` where `data_id` = dataID and `language_id` = langID;
  else
    select overview from `data_overview` where `data_id` = dataID and `language_id` = 9; 
  end if;

end



Zajímavé, tak adminer to vrací bez chyby a jede to jak má, ale phpmyadmin vypisuje co vypisuje, tak nevím. A když to vyvolám v php, tak to jede taky...

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