Risultato di stringa sql con join

Ciao a tutti!!

ho questo codice in una classe Zend_Db_Table_Abstract:

$select = $this->select('F15STAORD','F15TIPORD', 'F15DATORD', 'F15NUMORD', 'F15FORCLI', 'F15TTQTOR', 'F15UTEINS', 'F15UTEMOD');
$select->setIntegrityCheck(false);
$select->where('F15STAORD = ?'," ")
            ->join('ANCLI01L','ORDIT01L.F15FORCLI = ANCLI01L.F21CODCLI','F21CODCLI'); 
$rows = $this->fetchAll($select);

ora facendo un print_r($rows) vedo solamente i valori della prima tabella e non so come accedere alla tabella ANCLI01L per prendere i valori risultanti dal join.

come faccio ad accedere ai campi della tabella ANCLI01L messa in join?

grazie mille

inviato 5 anni fa
blow1986
X 0 X

Se elimini tutta questa stringa:

'F15STAORD','F15TIPORD', 'F15DATORD', 'F15NUMORD', 'F15FORCLI', 'F15TTQTOR', 'F15UTEINS', 'F15UTEMOD'

Dovresti avere a disposizione tutti i campi, poi nel tuo select specifichi quali campi vuoi estrarre dalla query.

risposto 5 anni fa
Mario Santagiuliana
X 0 X

Grazie della risposta!

ho tolto i campi che mi hai detto (lasciato solo 'F15STAORD' per la condizione) e vusualizzavo tutti campi della prima tabella.

Per vedere i campi della seconda tabella (quella in join) ho dovuto aggiungerli al terzo

parametro del metodo ->join

->join('ANCLI01L','ORDIT01L.F15FORCLI = ANCLI01L.F21CODCLI',array('F21CODCLI','F21RAGSOC'......);

se posso...

inoltre avrei bisogno di mettere una AND alla clausola di WHERE ma ancora non ci sono riuscito

(credo sbaglio la sintassi).

potreste aiutarmi?

grazie mille!

risposto 5 anni fa
blow1986
X 0 X

Facci vedere come aggiungi il where.

In teoria di dovrebbe bastare inserirne un altro.

risposto 5 anni fa
Mario Santagiuliana
X 0 X

uso questo codice per aggiornare un tabella:

$data = array('F15STAORD'=>"I");
$update = $this->update($data, 'F15NUMORD = '.$ordine['F15NUMORD']);

ora vorrei aggiungere una condizione in AND alla where F15NUMORD = $ordine['F15NUMORD']

come faccio?

grazie

risposto 5 anni fa
blow1986
X 0 X

Rendi il secondo campo un array. Cioč il where č un array:

$data = array(...);
$where = array('campo'=>'valore', 'campo2'=>'valore2');
$this->update($data, $where);
risposto 5 anni fa
Mario Santagiuliana
X 0 X

ho provato le modifche e mi ritorna questo errore:

$data = array('F15STAORD'=>"I");
$where = array('F15NUMORD'=>$ordine['F15NUMORD'], 'F15DATORD'=>$ordine['F15DATORD']);
$update = $this->update($data,$where);

Parola chiave AND non prevista. Token validi: < > = <> <= ?< ?> ?= >= ^< ^> ^= IN NOT. SQLCODE=-199

sto lavorando su db2 IBM I

risposto 5 anni fa
blow1986
X 0 X

Prova con l'inserire direttamente la clausala come stringa allora:

$where="'F15NUMORD'=$ordine['F15NUMORD'] AND 'F15DATORD'=$ordine['F15DATORD']"

Controlla che la stringa SQL che viene inviata sia corretta con i valori rinchiusi negli apici in modo corretto.

risposto 5 anni fa
Mario Santagiuliana
X 0 X

grazie dell'aiuto ma ho fatto diverse prove e mi ritorna sempre questo errore:

<h3>Exception information:</h3>

  <p>

      <b>Message:</b> Invalid bind-variable name ':00'  </p>

  <h3>Stack trace:</h3>

  <pre>#0 /usr/local/zendsvr/share/ZendFramework/library/Zend/Db/Statement.php(114): Zend_Db_Statement->_parseParameters('UPDATE "ORDIT01...')

#1 /www/zendsvr/htdocs/Givep/library/Strategic/Db/Adapter/Db2.php(257): Zend_Db_Statement->__construct(Object(Strategic_Db_Adapter_Db2), 'UPDATE "ORDIT01...')

#2 /usr/local/zendsvr/share/ZendFramework/library/Zend/Db/Adapter/Abstract.php(467): Strategic_Db_Adapter_Db2->prepare('UPDATE "ORDIT01...')

#3 /usr/local/zendsvr/share/ZendFramework/library/Zend/Db/Adapter/Abstract.php(604): Zend_Db_Adapter_Abstract->query('UPDATE "ORDIT01...', Array)

#4 /usr/local/zendsvr/share/ZendFramework/library/Zend/Db/Table/Abstract.php(1109): Zend_Db_Adapter_Abstract->update('ORDIT01L', Array, 'F15NUMORD=5 AND...')

#5 /www/zendsvr/htdocs/Givep/application/models/Ordini.php(51): Zend_Db_Table_Abstract->update(Array, 'F15NUMORD=5 AND...')

#6 /www/zendsvr/htdocs/Givep/application/controllers/OrdiniController.php(30): Application_Model_Ordini->ConfermaOrdini()

#7 /usr/local/zendsvr/share/ZendFramework/library/Zend/Controller/Action.php(513): OrdiniController->confordiniAction()

#8 /usr/local/zendsvr/share/ZendFramework/library/Zend/Controller/Dispatcher/Standard.php(295): Zend_Controller_Action->dispatch('confordiniActio...')

#9 /usr/local/zendsvr/share/ZendFramework/library/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))

#10 /usr/local/zendsvr/share/ZendFramework/library/Zend/Application/Bootstrap/Bootstrap.php(97): Zend_Controller_Front->dispatch()

#11 /usr/local/zendsvr/share/ZendFramework/library/Zend/Application.php(366): Zend_Application_Bootstrap_Bootstrap->run()

#12 /www/zendsvr/htdocs/Givep/public/index.php(26): Zend_Application->run()

#13 {main}  </pre>

risposto 5 anni fa
blow1986
X 0 X

Fa un debug e visualizza solo la stringa sql che viene generata.

risposto 5 anni fa
Mario Santagiuliana
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda