Problema nel salvare informazioni nel database.

7 contenuti / 0 new
Ultimo contenuto
Problema nel salvare informazioni nel database.

Sono nuovo nella programmazione, ho creato su drupal una pagina in php visibile solo agli utenti registrati e senza gruppo, che permetta di generare ed associare un gruppo casuale. Ho deciso di creare una pagina anziché un modulo perché non sono ne un esperto di php ne di database, e poi anche perché sono 2 righe di codice. Mi chiedevo, ho generato questo metodo che genera un gruppo casuale, ma come faccio ad assegnarlo all'utente? Ho provato con questo codice ma non funziona:

<?php
$numero
= rand(3,6);
if (
$numero == 3) $risultato = "Grifondoro";
else if (
$numero == 4) $risultato = "Serpeverde";
else if (
$numero == 5) $risultato = "Tassorosso";
else
$risultato = "Corvonero";
echo
"Complimenti! Il cappello parlante ti ha smistato nella casata di " .$risultato;
mysql_select_db("my_gdrhogwarts");
$sql="INSERT INTO `users_roles` (`uid`, `rid`) VALUES
('
$_POST[uid], ,'$_POST[numero]')";
?>

Secondo me l'errore sta nel fatto che non ho dichiarato l'UID dell'utente... ma come posso dichiararlo? Qual'è il metodo get per prelevare l'id?
Ho scelto 3-6 perchè sono i numeri corrispondendi agli rid dei gruppi del database per non confondermi, potevo usare benissimo 0-3
P.S. Utilizzo drupal 6

Drupal Version:

Qualche consiglio?

Il mio sito web

Per Drupal si usa il Database abstraction layer e lo trovi su:

http://api.drupal.org/api/drupal/includes--database--database.inc/group/...

e il codice è del tipo:

<?php
$fields
= array('nid' => 1, 'title' => 'my title', 'body' => 'my body');
db_insert('node')->fields($fields)->execute();
?>

Ciao

Grazie, dovrò studiarlo un po' quindi, vediamo che so fare! :)

Il mio sito web

quindi, da quanto ho capito se devo eseguire una query di questo tipo:
INSERT INTO....
devo usare la funzione db_query_range($query); e passargli come parametro la mia query?
db_query_range('INSERT INTO...');

Il mio sito web

danzisiweb wrote:

Ho provato a fare come mi hai spiegato tu:
<?php
 $fields
= array('uid' => $user->uid, 'rid' => $numero);
db_update('users_roles')->fields($fields)->execute();
?>

però mi dava errore che non riusciva a chiamare la funzione db_update. Così, ho aggiunto prima questo campo:
<?php
db_connect
("mysqli://gdrhogwarts:gecrugenfu74@localhost/my_gdrhogwarts);
?>

Ma adesso mi da quest'errore:
Call to undefined function db_insert()

mi sono accorto però che io utilizzo drupal 6...tu mi hai dato un riferimento a drupal 7, ed in effetti questa funzione non l'ho trovata nell'API di drupal 6

Il mio sito web

Trovata la funzione!
db_query($query_da_eseguire);

funziona! Grazie mille!

P.S. perché non c'è più il tasto modifica? ho riempito un forum con 3 messaggi quando ne potevo mettere uno solo... :(

Il mio sito web