Tabelle da query su oracle

3 contenuti / 0 new
Ultimo contenuto
Tabelle da query su oracle

Da alcuni giorni sbatto la testa per implementare un form che inserisca i dati di una query in una tabella .Mavimo mi ha dato qualche dritta su come fare ma ancora riscontro qualche problema.Si tratta di due file uno .php che mi ritorna la connessione al data base e l'altro e il .module dove ho creato i form per inserire i dati di interrogazione ma il problema e trovare il modo di inserire i dati restituiti in una tabella che so come implementare ma non so come collegare bene i form di interrogazione co questi ultimi.

Ecco il codice dei form e vorrei capire se e possibile unire come ho fatto
i due form che non mi funzionano

  'page arguments' => array(array=>('_connection_form'),array=>('query_rub_form')),
require('GestoreQuery.php');
$row = oci_fetch_row($stmt)
// Implementation of hook_info()
function rubricamodule_info() {
  return array(
    'rubrica' => array(
      'name' => t('Rubrica'),
      'module' => 'RubricaModule',
      'description' => t('Gestione rubrica')
    )
  );
}
// implementation of hook_perm()
//Definisce i permessi degli utenti
function rubrica_perm(){
  return array('administer RubricaModule');
}
//Gestisce il menù tramite l'implementazione di un array multidimensionale
function RubricaModule_menu() {
  $items = array();
//Il link del modulo su drupal titolo,descrizione,pagina di richiamo,pagina dei contenuti
  $items['admin/settings/RubricaModule'] = array(
    'title' => 'Rubrica',
    'description' => t('Amministrazione rubrica'),
    'page callback' => 'drupal_get_form',
    'page arguments' => array(array=>('_connection_form'),array=>('query_rub_form')),
    'access arguments' => array('amministratore RubricaModule'),
    'type' => MENU_NORMAL_ITEM
  );
  return $items;
}
function _connection_form()
{
  //Se non si accede come amministratore viene negato l'accesso
  if (!user_access('amministratore RubricaModule'))
    {
     drupal_access_denied();
     return;
    }
// $form = array();
  //Indica cosa deve essere inserito nel campo di testo
  $form['RubricaModule']['cognome'] = array(
    '#type' => 'textfield',
    '#title' => t('Ricerca per cognome'),
    //'#default_value' => ,
    '#size' => 40,
    '#maxlength' => 50,
    '#description' => t('Si effettua una ricerca per nominativo ')
  );
   //Indica cosa deve essere inserito nel campo di testo
  $form['RubricaModule']['dipartimento'] = array(
    '#type' => 'textfield',
    '#title' => t('Ricerca  per dipartimento'),
    //'#default_value' => ,
    '#size' => 40,
    '#maxlength' => 50,
    '#description' => t('Si effettua una ricerca per dipartimento ')
  );
  //Il pulsante di invio dati
  $form['RubricaModule']['submit'] = array(
    '#type' => 'submit',
    '#title' => t('ricerca'),
    '#default_value' => ricerca ,
    '#size' => 20
  );
   //$form['RubricaModule']['tabella'] = array('#value' => query_rub());
  $form['RubricaModule']['tabella'] =  drupal_get_form();
//La visualizzazione del risultato
$form['#theme'] = 'RubricaModule_draw';
  return $form;
}
  function  query_rub_form()
   {
     while ($row = oci_fetch_row($stmt))
     $rows[] = $row;
    foreach ($rows as $v)
    $form [$v->query]  = array('#tree' => TRUE);
      $form [$v->query] ['cognome'] = array(
      '#value' => $v->COGNOME,
      '#type'          => 'textfield',
      '#maxlength'     => 128,
    );
  $form[$v->query]['nome'] = array(
      '#value' => $v->NOME,
      '#type'          => 'textfield',
      '#maxlength'     => 40,
    );
$form[$v->query]['comparto'] = array(
      '#value' =>$v->COMPARTO,
      '#type'          => 'textfield',
      '#maxlength'     => 40,
    );
$form[$v->query]['sede'] = array(
      '#value' => $v->SEDE,
      '#type'          => 'textfield',
      '#maxlength'     => 40,
    );
$form[$v->query]['telefono interno'] = array(
      '#value' => $v->TEL_INTERNO,
      '#type'          => 'textfield',
      '#maxlength'     =>40,
    );
$form[$v->query]['indirizzo email'] = array(
      '#value' => $v->E_MAIL,
      '#type'          => 'textfield',
      '#maxlength'     => 40,
    );
    $form['#theme'] = 'rub_query_draw';
    return $form;
     } 
function theme_rub_query_draw($form)
    {
       $header = array(t('Cognome'),t('Nome'),t('Comparto'),t('Sede'),t('Telefono interno'),t('Indirizzo Email'));
     //Ritorna le righe successive dai dati risultanti come un'arry numerico ,o entrambi.
      $rows[] = array(
      drupal_render($form[$v]['cognome']),
      drupal_render($form[$v]['nome']),
      drupal_render($form[$v]['comparto']),
      drupal_render($form[$v]['sede']),
      drupal_render($form[$v]['telefono interno']),
      drupal_render($form[$v]['indirizzo email']),
      );
    $output = theme('table', $header, $rows);
    $output .= drupal_render($form);
  //  echo $output;
    return $output;
  }
    function drupal_get_form()
   {
       $output = form_render('query_rub_form');
       return $output;
    }
//La funzione che gestisce la visualizzazione del risultato
function theme_RubricaModule_draw($form)
  {
   //$header = array(t('Attivo'), t('Valore'), t('Descrizione'));
    $rows[] = array(
      //drupal_render($form['RubricaModule']),
      drupal_render($form['RubricaModule']['cognome']),
      drupal_render($form['RubricaModule']['dipartimento']),
      drupal_render($form['RubricaModule']['submit']),
      // drupal_render($form['RubricaModule']['tabella']),
       );
    $output = theme('table', $header, $rows);
    $output .= drupal_render($form);
    return $output;
  }
function search_theme($existing, $type, $theme, $path) {
    return array( 'RubricaModule_draw' => array(
                       'arguments' => array('form' => NULL),
       ),
      'rub_query_draw' => array(
      'arguments' => array('form' => NULL),
      ),
                      );
        }
?>

[ricordati il tasto/tag CODE]
Prima domanda: hai verificato che si possano passare 2 parametri a drupal_get_form?
Primo suggerimento: fare un semplice modulo di ricerca come il tuo con FAPI inizialmente è un po' anti-intuitivo. Adesso non ho sotto mano i link, comunque può darsi che la cosa sia stata trattata (magari solo con i suddetti link) già sul nostro forum. Di sicuro mi ricordo un articolo di Lullabot.com e qualcos'altro su drupal.org.