Back to top

Autore Topic: due setquery collegate  (Letto 3356 volte)

Offline typho

  • Nuovo arrivato
  • *
  • Post: 3
    • Mostra profilo
due setquery collegate
« il: 01 Gen 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

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:due setquery collegate
« Risposta #1 il: 04 Gen 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
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline typho

  • Nuovo arrivato
  • *
  • Post: 3
    • Mostra profilo
Re:due setquery collegate
« Risposta #2 il: 04 Gen 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....

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:due setquery collegate
« Risposta #3 il: 04 Gen 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 :(



mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline typho

  • Nuovo arrivato
  • *
  • Post: 3
    • Mostra profilo
Re:due setquery collegate
« Risposta #4 il: 04 Gen 2010, 20:05:31 »
grz :)

Offline sgot

  • Nuovo arrivato
  • *
  • Post: 13
    • Mostra profilo
Re:due setquery collegate
« Risposta #5 il: 21 Ott 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).

Codice: [Seleziona]
$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.
« Ultima modifica: 21 Ott 2011, 19:36:19 da sgot »

Offline sgot

  • Nuovo arrivato
  • *
  • Post: 13
    • Mostra profilo
Re:due setquery collegate
« Risposta #6 il: 24 Ott 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

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:due setquery collegate
« Risposta #7 il: 24 Ott 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.
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline sgot

  • Nuovo arrivato
  • *
  • Post: 13
    • Mostra profilo
Re:due setquery collegate
« Risposta #8 il: 24 Ott 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

 



Web Design Bolzano Kreatif