Newsgroup: it.comp.www.php
Titolo: Problema INSERT nel DB

Salve a tutto il ng, sto creando uno script php abbastanza lungo ma una
parte di codice in realta' molto semplice e' quella che mi sta dando piu'
problemi.
Sostanzialmente qesta parte di codice legge le informazioni da un form che
ha nell' action la var PHP_SELF e poi le dovrebbe inserire in un db mysql.
Il problema e' che lo script funziona senza nessun errore ma poi non scrive
nel db e la tabella rimane senza record.
Cosa ho sbagliato?
Eccovi il pezzo di codice interessato:
<?php
        mysql_connect('localhost','****','****');
        mysql_select_db('*****');
        $query = "INSERT INTO iscritti (untente_ID, nome, email, age, luogo,
lavoro) VALUES ('', '$nome', '$email', '$age', '$luogo', '$lavoro')";
        $risultato = mysql_query("$query");
        mysql_close();
?>
Grazie e ciao
Danilo

 ha scritto nel messaggio
news:nbRE7.7714$zu5.3...@news1.tin.it...

uhm...
se non devi inserire nessun valore in utente_ID non includerlo nella
query...
Esempio:
<?
$conn = mysql_connect("localhost","user","pswd");
$select = mysql_select_db("dbname");
$query = mysql_query(" INSERT INTO iscritti (nome,email,age,luogo,lavoro)
VALUES ('$nome','$email','$age','$luogo','$lavoro') ");
$close = mysql_close();
?>
Pero' non sarebbe un errore come hai fatto tu, è solo una prova che puoi
fare per vedere se va, nel complesso mi sembra che sia già a posto...
Ciao
Alex

         $risultato = mysql_query("$query")
	|| die ("Query non valida.<br>QUERY: $query.");
Capito? ;-)
Sono sempre dell'opinione che il print sia sempre il miglior tool di
debug! :-)
Cmq, le cause potrebbero essere molte:
untente_ID potrebbe non esistere (utente_ID?)
Lo stesso campo potrebbe essere NOT NULL
Manca un punto e virgola alla fine della query (che in SQL ci vuole!)
E fra l'altro, non ti basterebbe un:
	$query = "INSERT INTO iscritti values
		('','$nome','$email','$age','$luogo','$lavoro');";
Molto più rapido! ;-)
Ciao
--ev

> Manca un punto e virgola alla fine della query (che in SQL ci vuole!)
Non č obbligatorio se si tratta di una query sola, ovvero se dopo non ci
sono altre istruzioni...
Alex

 query...
Ma se il db ha 6 colonne e tu, relativamente alla riga che vuoi
inserire, ne passi 5, non è che si incacchia??
IMHO e AFAIK in questo aveva ragione lui!
Ciao
--ev


Assolutamente no... verifica prima di rispondere...
se hai una tabella:
id
nome
cognome
e fai una query del tipo:
insert into tabella (id,nome,cognome) values ('','$nome','$cognome')
Non è scorretta, ma se per esempio id fosse NOT NULL e AUTO INCREMENT
potresti avere dei problemi...
Invece se fai come dico io:
inser into tabella (nome,cognome) values ('$nome','$cognome')
E meglio perchè tiri in causa solo i campi necessari, evitando problemi!
Ciao
Alex

 E meglio perchè tiri in causa solo i campi necessari, evitando problemi!
Hia ragionissima: il problema (mio!) è che il sonno non mi aveva fatto
notare che dopo "into tabella" specificavi i campi da riempire.
Probabilmente avevo letto la tua query come:
insert into tabella values ('$nome', '$cognome');
Giuro che d'ora in poi dormirò di più! :-)
Ciao
--ev

 Stile 'paraculo completo'!!!
Cosa vuol dire AFAIK ?
IMHO mi sembra voglia dire in my h... opinion ? o sono fuori strada ? :-)
Alex

|Cosa vuol dire AFAIK ?
As far as I  know, cioč: per quanto ne so.
|IMHO mi sembra voglia dire in my h... opinion ? o sono fuori strada ? :-)
"in my humble opinion" .... AFAIK ! :)

Grazie a tutti ho risolto.
LA febbre mi fa fare certe cag.
Ciao
Danilo

 IMHO mi sembra voglia dire in my h... opinion ? o sono fuori strada ? :-)
In stradissima!
H -> Humble !
Ciao
--ev