Salvare dati nel database

4 contenuti / 0 new
Ultimo contenuto
Salvare dati nel database

Sono inesperto e alle prime armi. Ho provato a creare un modulo con drupal per salvare i dati di una form.
Benchè mi mostri la form non mi salva col submit i dati nel database nel quale ho creato una tabella di nome prova.
Potreste dirmi cosa sbaglio?
Vi posto il codice

<?php
function prova_form_perm() {
  return array(
' access prova_form content');
}
// function provaform_perm()
////////////////////////////FUNZIONE PER CREARE LA FORM///////////////////////////////////////////
function prova_form_crea()
{
 
$form['subject'] = array(
'#type' => 'textfield',
'#title' => t('Subject'),
'#size' => 50,
'#maxlengh' => 255,
'#description' => t('soggetto.'),    );
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Crea Dieta'),
);
return
$form;
}
function
prova_form_prima(){
$sb = drupal_get_form('prova_form_crea');
return
$sb;
}
function 
prova_form_menu()
 {
  
$items = array();
 
$items['prova_form'] = array(
   
'title' => 'provaform',
   
'page callback' => 'prova_form_prima',
   
'access arguments' => array('access prova_form content'),
   
'type' => MENU_CALLBACK
 
);
  return
$items  ;
 }
////////////////////////////Cosa faccio con il submit //////////////////////////////////////////////
function prova_form_submit($form, &$form_state) {
  
$form_values = $form_state['values'];
   
db_query('INSERT INTO prova (nome) '
."VALUES ('%s')",    $form_values['subject']);
}
?>

Grazie per l'aiuto
Kulky

Trovato l'errore
la funzione giusta era

<?php
 
function prova_form_crea_submit($form, &$form_state) {
  
$form_values = $form_state['values'];
   
db_query('INSERT INTO prova (nome) '
."VALUES ('%s')",    $form_values['subject']);
?>

Scusate il disturbo

Attenzione, la soluzione "corretta" per effettuare l'operazione di inserimento nel database è di usare drupal_write_record e non usare direttamente l'insert nella query.

<?php
function prova_form_crea_submit($form, &$form_state) {
 
$form_values = $form_state['values'];
 
$item = array(
   
'nome' => $form_values['subject'],
  );
 
drupal_write_record('prova', $item);
}
?>

Ciao
Marco
--
My blog
Working at @agavee

Grazie mille non lo sapevo. Proverò domani :)))) Grazie ancora