Iterazione oracle e drupal

5 contenuti / 0 new
Ultimo contenuto
Iterazione oracle e drupal

Scusate,uso da poco drupal,ho creato un form di ricerca che dovrebbe interrogare un data base oracle che contiene gia le tabelle con i dati da reperire,pero riscontro dei problemi nell'impostazione delle query in drupal per interrogare il data base...
Qualche consiglio veloce da darmi.

Immagino che si tratti di un DB esterno, come ti stai interfacciando ad esso? non esiste un meccanismo di interazione per Drupal con Oracle (anche se ci sono dei lavori al riguardo), quindi controlla come ti connetti al DB e prova ad indicare che problema ricevi.

Ciao
Marco
--
My blog
Working at @agavee

Praticamente il data base è oracle,la connessione esiste,le tabelle dati anche,devo impostare delle query in php o con qualche funzione di drupal che non conosco per farmi ritornare alcuni campi che mi interessano.Si tratta passare i dati inseriti nel form ad una query che estapoli i dati dalle tabelle su oracle(praticamente è la gestione di una rubrica).
Ecco il codice
Sbaglio qualcosa?

<?php
function  query_rub()
{
 
$cognome_generato=$form['RubricaModule']['cognome'];
 
$comparto_generato= $form['RubricaModule']['dipartimento'];
 
//Controllo di connessione stabilita tra modulo spider e data base
  
$connessione_db = variable_get('conn_rubrica', ' ')->con_established;
  
//Se la connessione è stabilita fa la query al database e chiude la connessione
 
if(isset($connessione_db))
  {
   
//Inizializza la query
   
$query_c_dip = "SELECT COGNOME,NOME,COMPARTO,SEDE,TEL_INTERNO,E_MAIL
                     FROM { ANAGRAFICA_PERSONALE}
                     WHERE COGNOME = '"
.$cognome_generato."' OR COMPARTO = '".$comparto_generato."'";
   
//prepara le query usando la connessione e ritorna un'identificatore "Prepares Oracle statement for execution"
   
$stmt = oci_parse($connessione_db, $query_c_dip);
   
//Esegue le istruzioni
   
oci_execute($stmt);
   
//Chiude la connessione
   
oci_close($connessione_db);
   
//Inizializza l'array con i campi da riempire dopo l'interrogazione al data base
   // $header = array('Cognome','Nome','Comparto','Sede','Telefono interno','Indirizzo Email');
    //Passa l'array ad una variabile "righe"
    //$rows = array();
    //Ritorna le righe successive dai dati risultanti come un'arry numerico ,o entrambi.
   
while ($r=oci_fetch_row($stmt))
     {
     
$rows[] = $r;
     }
   
$output = theme('table',$header, $rows);
    return
$output;
  }
}
?>

Ciao comunque e grazie di aver risposto

Non conosco cosa fanno le tue funzioni oci_*, ma ad occhio non caisco cosa tiri fuori dalle variabili:

<?php
 $connessione_db
= variable_get('conn_rubrica', ' ')->con_established;
?>

una variabile è una informazione scritta nel DB, sembra che tu tenga nel DB al connessione, quindi... :|
Credo che tu debba tenere nel DB i dati di connessione e poi eventualmente stabilire la connessione e svolgere le diverse operazioni.. altra cosa che non mi è chiara è se con_established è un metodo o una proprietà, sembra che sia questa seconda, quindi presumo che il test di connessione sia quello in cui viene controllata la connessione attiva e non quello in cui si vede se l'oggetto esiste...

Ciao
Marco
--
My blog
Working at @agavee