
PHP - Codeigniter použití výstupu z Query do další Query jako podmínka
Zdravím,
netuší někdo, proč toto nefunguje?
Asi špatně používám objekt k databázi.
Mám:
$Name = strval(gamename);
$queryAAA = $this->db->query("SELECT id_game FROM games WHERE name ='". $Name ."' LIMIT 1");
$pageAAA = $queryAAA->result();
$myID = $pageAAA[0]->id_game ;
echo $myID ; // Toto píše v pořádku výstup
die($myID); // Toto vrací prázdný výsledek !
Potřebuji použít výsledek z databáze v následujícím SQL dotazu.
Ovšem ten neprochází a háže chybu. A sice tu, že proměnná $myID je prázdná !
CHtěl bych vědět, proč se takto děje a jak tomu předcházet prosím.
Odpověď, že to můžu nakonec nasoukat do jednoho joinu prosím nechci.
die($myID); s týmto si zamýšľal konkrétne čo? ukončenie skriptu, nejakej Tvojej funkcie, alebo čo?
pokiaľ použiješ funkciu die s návratou hodnotou inou ako 0 , vždy to bude chyba...
skús si pozrieť exit();
a samozrejme útržkovité kódy bez vzájomných prepojení a súvislostí asi zrejme nikomu nič nebudú hovoriť...
ano, problém, je , že je nekompletní kód . Je nějak zjednodušený pro demostraci? Pak by to chtělo komentář. Jsou to 2 varianty kódu nebo opravdu voláš echo a potom die (). Je tam to die důležité?
jenom poznámka, strval opravdu, ale opravdu není escapování pro SQL .
Blbá otázka: ale ten výstup je někde uprostřed html nebo nedejbože ajax a ty to kontroluješ v prohlížeči "pohledem" a ne voláním php.exe mujskript.php ?
Nějaké nástroje na debugování máš, jako var_dump($pageAAA[0])?
pak mě napadla další věc, jaký datový typ je ten id_game(potažmo pageAAA, potažmo pageAAA[0]), je to objekt (nějaký lazy getter abstrakce igniteru) nebo string?
a další, jestli se nějak neliší chování die co se týče die($objekt) (a ne/volání __toString())
a output buffering máš ? Je soubor nějak includnutý?
Nerozumím tedy tomu, že ten řádek s echo ukazuje výsledek. co třeba místo die použít znovu echo, případně var_dump, ,var_export a...
Kód je to poměrně komplexní, obsahující i řadu include souborů.
Proto jej nemohu celý uvádět.
Přesto děkuji všem za reakce.
Udělal jsem to přes tento select, který to následně bere:
$this->db->select('*')
->from('file')
->where('id_game', $myID)
->get()
->result()[0]->main_file;
Pěkný den