Joomla.it Forum

Non solo Joomla... => Database => : typho 01 Jan 2010, 20:10:55

: due setquery collegate
: typho 01 Jan 2010, 20:10:55
ciao ho un problema con un interrogazione db .Uso jumi per php
l'interrogazione  veramente sono due cosi (mi hanno detto che vanno fatte separate) dal pannello phpmyadmin  funziona in un unica sequenza ma da codice php faccio questo:

$database->setQuery("set @giocatore:=0, @num:=1;");// prima domanda

$database->setQuery("select codice,giocatore,(sum(score)/7) as media,nome_giocatore as nome,(count(*))as tornei from  ( ecc ecc..//seconda domanda


naturalmente non funziona sembra che la prima non la vede o no agisce poi sulla seconda se la metto in un unica stringa non mi da il collegamento al db qualcuno puo darmi una mano grz
: Re:due setquery collegate
: mmleoni 04 Jan 2010, 12:50:38
premesso che non so se funzioni, e non si vede dove usi le variabili, tra le due set richiami il metodo $database->query() per eseguire la prima? altrimenti le due query dovrebbero essere nella stessa set. ps: sicuro che sia := ?

ciao,
marco
: Re:due setquery collegate
: typho 04 Jan 2010, 16:02:01
ciao marco, grz per il consiglio e devo dire cosi funziona bene ,la sequenza giusta è:

$database->setQuery("set @giocatore:=0, @num:=1;");// prima domanda
$database->query();
$database->setQuery("select codice,giocatore,(sum(score)/7) as media,nome_giocatore as nome,(count(*))as tornei from  ( ecc ecc..//seconda domanda

si la prima e cosi assegna 0 e 1 alle due variabili che poi usa nella seconda query,,,,,metterle tutt'e due in un unica stringa non funzionava da php mentre dal pannello phpmyadmin si, cmq ho risolto grz se puoi mi picerebbe capire il perche senza  $database->query(); non funzionava....
: Re:due setquery collegate
: mmleoni 04 Jan 2010, 16:41:15
semplicemente perchè è il metodo query() che esegue la query, non setQuery() che si limita ad impostarla.

ciao, marco

ps: query() se non chiamato direttamente, è chiamato implicitamente dai metodi per l'accesso ai records quali loadXXX, ma nel tuo caso non vi era motivo di chiamarli e quindi no query(), no party :(



: Re:due setquery collegate
: typho 04 Jan 2010, 20:05:31
grz :)
: Re:due setquery collegate
: sgot 21 Oct 2011, 19:16:15
Ciao a tutti e scusate se proseguo un topic un po' vecchio, ma credo che sia esattamente quello di cui ho bisogno, anzi, in realtà è forse anche più complicato.
Il mio caso è il seguente:
1) eseguo una query nel DB;
2) se il risultato esiste, il valore restituito lo devo utilizzare all'interno di una seconda query;
3) il valore restituito dalla seconda query lo devo solo confrontare con un altro valore restituito da una terza query;
Il punto 1 e 2 riesco a farli funzionare, mentre il terzo no, apparentemente senza motivo. Per la precisione non riesco a tirare fuori dalla terza query il valore di cui ho bisogno, per confrontarlo con quello della seconda (fra l'altro le due query sono pressochè identiche).

:
$this->_db->setQuery("SELECT picid FROM blaa... ");
      if($this->_db->loadResult())
      {
$idFoto = $this->_db->loadResult();
$this->_db->setQuery("SELECT catid FROM blaaaa... ");
$categoriaVOTATA = $this->_db->loadResult();
$this->_db->setQuery("SELECT catid FROM bluuuu... ");
$categoriaATTUALE = $this->_db->loadResult();
if ($categoriaVOTATA == $categoriaATTUALE)
               {
VITTORIAAAAA
}
      }

Quindi, non riesco in nessun modo ad ottenere un valore dalla terza query e quindi nella variabile $categoriaATTUALE ::)

Grazie a chiunque proverà ad aiutarmi.
: Re:due setquery collegate
: sgot 24 Oct 2011, 13:50:41
Ho risolto...
C'era un'idiozia nella query "pressochè" identica, che poi alla fine non doveva esserlo :P

Scusate

...10 secondi di vergogna... :P
: Re:due setquery collegate
: mmleoni 24 Oct 2011, 20:35:13
SELECT 1 FROM blaaaa INNER JOIN bluuuu on blaaaa.catid = bluuuu.catid WHERE ...

restituisce un recordset solo se la categoria votata è quella attuale.

ciao,
marco

ps: visto che era un problema diverso? conviene sempre aprire un nuovo post.
: Re:due setquery collegate
: sgot 24 Oct 2011, 23:27:16
100% ragione sull'apertura di un nuovo post.
Per il resto non era proprio così semplice ;) le query da fare erano proprio diverse.

Grazie 1000 comunque e scusa il disturbo