Newsgroup: it.comp.www.php
Titolo: AIUTO: "Impossibile eseguire l'interrogazione"!

Mi sono connesso regolarmente al DB ed alla tabella...
Adesso sto solo tentando di scrivere dati nella tabella...
$sql = "INSERT INTO $nome_tabella
        (ID_utente, ID_utente1, Nome, Cognome, ecc. ecc. ecc.)
        VALUES
        ('ID_utente', '$ID_utente1', '$Nome', '$Cognome', ecc. ecc. ecc.)
        ";
Ho anche provato a scrivere:
$sql = "INSERT INTO $nome_tabella
        (ID_utente, ID_utente1, Nome, Cognome, ecc, ecc, ecc,)
VALUES
        (\"ID_utente\", \"$ID_utente1\", \"$Nome", \"Cognome\", ecc. ecc.
ecc.)
In tutto sono  20 campi...
Cosa sto sbagliando???
Grazie..

>Cosa sto sbagliando???
Non sono il massimo esperto, ma mi sa che non basta impostare la variabile 
con la query, devi anche mandarla al database con un istruzione 
mysql_query().
Teho

 ha scritto nel messaggio
news:VsMg7.4514$423.1...@news.infostrada.it...


         ";
[...]
ciao
Perchč non posti il codice completo (naturalmente fino alla query compresa)?
magari viene piů facile interpretare, visto che manca un $, qualche virgola
etc.
Lo dico anche perchč ho gia notato la risposta di TEHO e la tua successiva.
paolo

 Grazie.... comunquue....
prova ad usare una funzione di questo tipo al posto di mysql_query
function safe_query ($query = "")
{
 if (empty($query)) { return FALSE; }
 if (!empty($query_debug)) { print "<pre>$query</pre>\n"; }
 $result = mysql_query($query)
  or die("Attenzione! query fallita: "
   ."<li>err=".mysql_errno()
   ."<li>errore=".mysql_error()
   ."<li>query=".$query
  );
 return $result;
}
che ti ritorna il tipo di errore
ciao
--
Kappa
ka...@webngo.net
www.webngo.net

";
Se inserisci dati in TUTTI i campi della tabella, è superfluo elencarli
tutti, basta
insert into $tabella values (eccetera).
Ma comunque di per sé questo non è un errore.
Però noto:
1. Alcuni dati che cerchi di inserire non sono variabili: ID_utente: forse
devi mettere $ID_utente.
Lo stesso ID_fatture, ID_promotore.
2. '$citta_nascita\' ha un carattere di escape di troppo
3. $Nr_identificativo_utente, mancano gli apici ' ' all'inizio e alla fine
Inoltre puoi provare:
1. togli @ e "or die ..." in modo da vedere se PHP ti dà qualche segnale di
errore preciso.
2. a passare prima le variabili che potrebbero contenere degli apici alla
funzione addslashes()
Però sto un po' tirando a indovinare i possibili problemi. Attento che se
per caso in php.ini è attivato magic_quotes_runtime addslashes() non serve
anzi ti duò fare confusione).


<?
if ((!$Nome) || (!$Cognome)) {
     header( "Location: 
http://www.miosito.com/aggiungi.html
");
     exit;
}
//cambiare le impostazione per la connessione al server
  $server = "localhost";
  $user = "utente";
  $pass = "password";
  $db = "nome db";
  $nome_tabella = "nome tabella";
$conn =  mysql_connect( $server, $user, $pass  );
if ( !$conn )
    die( "Couldn't connect to MySQL" );
print "ti sei connesso<br>";
mysql_select_db( $db )
    or die ( "Couldn't open $db: ".mysql_error() );
print "hai aperto il database $db<br>";
/*
cambia nel database il campo user della tabella con eserxxx o altro nome
ricordandoti
di cambiare anche i parametri del campi nell'INSERT INTO che io ho messo
come userxxx
e $userxxx. Considera che non dei mai usare il campo user in quanto è sempre
utilizzato per la connessione.
Trovi nella guida anche tutti gli altri nomi di variabili che non puoi
utilizare.
/*
$sql = "INSERT INTO $nome_tabella
(ID_utente, ID_utente1, ID_fatture, ID_azioni, ID_conto_corrente,
ID_c_c_mov, ID_promotore, Nome, Cognome, Data_nascita, Luogo_nascita,
Citta_nascita, Nazione_nascita, Userxxx, Utente_promotore, Utente_azionista,
Utente_cliente, Nr_identificativo_utente, Note)
VALUES
('$ID_utente', '$ID_utente1', 'ID_fatture', '$ID_azioni',
'$ID_conto_corrente', '$ID_c_c_mov', 'ID_promotore', '$Nome', '$Cognome',
'$Data_nascita', '$Luogo_nascita', '$Citta_nascita', '$Nazione_nascita',
'$Userxxx', '$Utente_promotore', '$Utente_azionista', '$Utente_cliente',
$Nr_identificativo_utente, '$Note')";
$test = mysql_query($sql);
if (!$test)
 die ("non posso eseguire l'inserimento. Controlla se i valori sono già
presenti nel database.");
 print "bravo!! sei riuscito ad eseguire il tutto";
mysql_close( $conn );
?>
L'errore è sicuramente anche dovuto al fatto che hai un campo UNIQUE che
cerchi di ripetere quando fai l'inserimento.
Quindi verifica i campi e quando inserisci non inserire valori doppi per un
campo UNIQUE
Al limite prima di fare INSERT INTO  cerca di fare una SELECT con il valore
dei vari campi UNIQUE e se esistono già non devi eseguire INSERT INTO  e
modificare i valori del form.
paolo

 3. $Nr_identificativo_utente, mancano gli apici ' ' all'inizio e alla fine
Non necessario se il campo e' del tipo numerico (cmq. meglio abituarsi a
metterli, magari si cambia la struttura del database)...
;-)

         ";
La query "pulita" diventerebbe:
INSERT INTO $nome_tabella (ID_utente, ID_utente1, Nome, Cognome, ecc. ecc. ecc.)
VALUES ('ID_utente', '$ID_utente1', '$Nome', '$Cognome', ecc. ecc. ecc.)
Manca un ; alla fine?
Ciao
--ev