Php non inserisce dati in db mysql

DeAndreon

Utente Attivo
9 Giu 2009
39
0
0
Ciao a tutti! Eccomi di nuovo... Ho un problema con questo listato:

insprop.php

<?php

$conn = mysql_connect("localhost","root","gt40forever");

if(!$conn)
{
echo "connessione non avvenuta";
exit;
}
$DB= mysql_select_DB("catasto");
if(!$DB)
{
echo "connessione al database fallita";
exit;
}
$query = "Insert into proprietario(IDProp,Cognome,Nome,DataNascita,LuogoNascita,CodFiscale,Indirizzo) Values
(NULL,'".$_POST['cognome']."','".$_POST['nome']."','".$_POST['datan']."','".$_POST['luogon']."',NULL,NULL);";
$res = mysql_query($query);
if(!$res)
{ echo "errore inserimento nuovo proprietario";
echo "".$_POST["cognome"].$_POST['nome'].$_POST['datan'].$_POST['luogon'];
}else{
echo "proprietario inserito con successo";
}
mysql_close($conn);

?>

Penso che ho fatto bene però non inserisce i dati nel db in mysql perchè mi esce sempre "errore inserimento nuovo proprietario"...
Posto anche la pagina principale:

pagin.html

<HTML>
<HEAD>
<TITLE>Nuovo proprietario</TITLE>
</HEAD>
<BODY>
<H3>In questa pagina puoi inserire un nuovo proprietario</H3>
<FORM ACTION = "insprop.php" METHOD = "POST">
Cognome: <INPUT TYPE = "text" NAME = "cognome"><BR>
Nome: <INPUT TYPE = "text" NAME = "nome"><BR>
Data di nascita: <INPUT TYPE = "text" NAME = "datan"><BR>
Luogo di nascita: <INPUT TYPE = "text" NAME = "luogon"><BR>
Codice fiscale: <INPUT TYPE = "text" NAME = "codfisc"><BR>
Indirizzo: <INPUT TYPE = "text" NAME = "ind"><BR>
<INPUT TYPE ="submit" VALUE = "Inserisci proprietario">
<INPUT TYPE = "reset" VALUE = "Annulla">
</FORM>

</BODY>
</HTML>

Non riesco a capire il perchè... ho utilizzato la stessa sintassi del mio libro:confused:

Grazie a quelli che mi aiuteranno!

p.s. il database ha l'autoincremento dell'IDProp. Quando inserisco un nuovo proprietario con la pagina web, mysql assegnerà automaticamente l'id al nuovo prop?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
se l'id è autoincremente non va messo nell'inseret, ci pensa mysql

$query = "Insert into proprietario(Cognome,Nome,DataNascita,Luogo Nascita,CodFiscale,Indirizzo) Values
('".$_POST['cognome']."','".$_POST['nome']."','".$_POST['datan']."','".$_POST['luogon']."',NULL,NULL);";
secondo NULL,NULL);";
 

DeAndreon

Utente Attivo
9 Giu 2009
39
0
0
Ciao! Grazie per la risposta! Niente, nemmeo così va:incazz2: sto da oggi pomeriggio a sbattere la testa provando varie soluzioni ma niente:incazz2: Ho fatto il copia incolla della tua riga postata ma niente:incazz2:
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao, scusa una cosa anche se mi sembra assurda
nella tabella i due campi CodFiscale e Indirizzo per caso sono NOT NULL?

poi verifica sempre la corrispondenza dei nomi compreso maiscolo/minuscolo
 

DeAndreon

Utente Attivo
9 Giu 2009
39
0
0
Grazie ancora per il tuo "soccorso":) Allora, la corrispondenza con minuscole e maiuscole c'è e sono NULL Indirizzo e CodFiscale. Sono null perchè non c'è inserito niente.

errore inserimento nuovo proprietarioMastroGeppetto1890/2/23Puffo

Questo mi esce. Nell'if dell'errore ho messo anche l'echo per vedere se effettivamente sono passati i dati e a quanto pare vengono passati solo che non riesco a capire perchè non li inserisce:mad:
 

DeAndreon

Utente Attivo
9 Giu 2009
39
0
0
Incredibile... ho creato un altro db con mysql chiamato testdb con gli stessi campi tranne Indirizzo e CodFiscale e nemmeno funziona:confused:

Penso di averlo creato bene:

Enter password: ***********
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 24
Server version: 5.1.34-community MySQL Community Server (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database testdb;
Query OK, 1 row affected (0.00 sec)

mysql> use testdb
Database changed
mysql>
mysql>
mysql> use testdb;
Database changed
mysql> create table proprietario (
-> IDProp int not null,
-> Cognome char(30),
-> Nome char(30),
-> DataNascita date,
-> LuogoNascita char(40),
-> primary key (IDProp)
-> );
Query OK, 0 rows affected (0.08 sec)

mysql> show tables;
+------------------+
| Tables_in_testdb |
+------------------+
| proprietario |
+------------------+
1 row in set (0.00 sec)

mysql> describe proprietario
-> ;
+--------------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------+----------+------+-----+---------+-------+
| IDProp | int(11) | NO | PRI | NULL | |
| Cognome | char(30) | YES | | NULL | |
| Nome | char(30) | YES | | NULL | |
| DataNascita | date | YES | | NULL | |
| LuogoNascita | char(40) | YES | | NULL | |
+--------------+----------+------+-----+---------+-------+
5 rows in set (0.01 sec)

mysql>

e questo è il listato modificato per questo db:

<?php

$conn = mysql_connect("localhost","root","gt40forever");

if(!$conn)
{
echo "connessione non avvenuta";
exit;
}
$DB= mysql_select_DB("testdb");
if(!$DB)
{
echo "connessione al database fallita";
exit;
}
$query = "Insert into proprietario(Cognome,Nome,DataNascita,Luogo Nascita) Values
('".$_POST['cognome']."','".$_POST['nome']."','".$_POST['datan']."','".$_POST['luogon']."');";
$res = mysql_query($query);
if(!$res)
{ echo "errore inserimento nuovo proprietario";
echo "".$_POST["cognome"].$_POST['nome'].$_POST['datan'].$_POST['luogon'];
}else{
echo "proprietario inserito con successo";
}
mysql_close($conn);

?>

non so veramente che pensare...:crying:
 

php_programmer

Nuovo Utente
20 Ago 2008
9
0
0
Luogo nascita lo devi attaccare e il punto e virgola prima della chiusura della parentesi non ci va.
prova con questo codice
PHP:
$query = "INSERT INTO proprietario(Cognome,Nome,DataNascita,LuogoNascita) VALUES
('".$_POST['cognome']."','".$_POST['nome']."','".$_POST['datan']."','".$_POST['luogon']."')";

fammi sapere ciao
 

DeAndreon

Utente Attivo
9 Giu 2009
39
0
0
Ma è allergico il mio mysql? com'è possibileeeeeeeeeeeee !!!! ho visto la sintassi in 100000 siti e sta fatta bene!!!!!!!!:confused::confused::incazz2::incazz2::crying::crying::crying::crying:
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
allora mettiamo in caccia del bug

prima cosa nella tabella

IDProp | int(11) | NO | PRI | NULL | autoincrement|
l'id usualmente è autoincrementante altrimenti lo devi inserire con l'avvertaenza di non fare duplicati (e che è assurdo)

secondo
$query = "Insert into proprietario(Cognome,Nome,DataNascita,LuogoNascita) Values
('".$_POST['cognome']."','".$_POST['nome']."','".$_POST['datan']."','".$_POST['luogon']."')";
nome campo LuogoNascita non Luogo Nascita
; da eliminare

terzo
subito dopo la riga $query = "Insert .........
metti il solito

var_dump($query);
e verifica, carattere per carattere, come è scritta la query e se i valori di post sono valorizzati

quarto
non so si ininfluente, ma scrivi le istruzioni mysql
"INSERT INTO propietario(...) VALUES(....)"

quinto
ma questo può essere uno stile di come scrivere il codice, io preferisco sempre ricavare i valori dei post prima, anche perche è meglio non metterli grezzi nel db.

$cognome=htnlspecialchars(addslashes(trim($_POST['cognome'])));
anche perchè se uno si chiama "d'argenti" o è nato a l'aquilla il db va in pallino
ecc...
con questo sistema che all'apparenza è più lungo, è più facile verificare ogni post e nell'insert si possono fare meno errori

"INSERT INTO proprietario(Cognome,Nome,DataNascita,LuogoNascita) VALUES('$cognome', '$nome', '$datan', $luogo')"

che, secondo me, è meglio leggibile che una serie di punti e doppi o tripli apici '"
 

DeAndreon

Utente Attivo
9 Giu 2009
39
0
0
string(105) "INSERT INTO proprietario(Cognome,Nome,DataNascita,LuogoNascita) VALUES ('oio','uiuo','1950/7/9','iuigi')" errore inserimento nuovo proprietariooiouiuo1950/7/9iuigi

questo mi esce ora...


e questo è il mio listato:

insprop.php

<?php

$conn = mysql_connect("localhost","root","gt40forever");

if(!$conn)
{
echo "connessione non avvenuta";
exit;
}
$DB= mysql_select_DB("testdb");
if(!$DB)
{
echo "connessione al database fallita";
exit;
}
$query = "INSERT INTO proprietario(Cognome,Nome,DataNascita,LuogoNascita) VALUES
('".$_POST['cognome']."','".$_POST['nome']."','".$_POST['datan']."','".$_POST['luogon']."')";
var_dump($query);
$res = mysql_query($query);
if(!$res)
{ echo "errore inserimento nuovo proprietario";
echo "".$_POST["cognome"].$_POST['nome'].$_POST['datan'].$_POST['luogon'];
}else{
echo "proprietario inserito con successo";
}
mysql_close($conn);

?>


lo stile con le variabili già l'ho tentato ma è sempre la stessa cosa...
 

DeAndreon

Utente Attivo
9 Giu 2009
39
0
0
ciao! e grazie per il tuo continuo sostegno! ho fatto quella modifica ma niente ancora...

string(99) "INSERT INTO proprietario(Cognome,Nome,DataNascita,LuogoNascita) VALUES ('io','io','1290/7/8','io')" errore inserimento nuovo proprietarioioio1290/7/8io


ecco il listato:

<?php

$conn = mysql_connect("localhost","root","gt40forever");

if(!$conn)
{
echo "connessione non avvenuta";
exit;
}
$DB= mysql_select_db("testdb");
if(!$DB)
{
echo "connessione al database fallita";
exit;
}
$query = "INSERT INTO proprietario(Cognome,Nome,DataNascita,LuogoNascita) VALUES
('".$_POST['cognome']."','".$_POST['nome']."','".$_POST['datan']."','".$_POST['luogon']."')";
var_dump($query);
$res = mysql_query($query);
if(!$res)
{ echo "errore inserimento nuovo proprietario";
echo "".$_POST["cognome"].$_POST['nome'].$_POST['datan'].$_POST['luogon'];
}else{
echo "proprietario inserito con successo";
}
mysql_close($conn);

?>
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
lo script mi sembra ok, credo di avelro passato tutto.
fai un esperimento, in quanto so che i campi typo date sono rognosi

| DataNascita | date | YES | | NULL | |


| DataNascita | varchar(10) | YES | | NULL | |


p.s.
tanto si inserisci la data aaaa/mm/gg l'ordinamento eventuale per data è lo stesso
 

DeAndreon

Utente Attivo
9 Giu 2009
39
0
0
Cioè, ormai... nemmeno mettendo il campo come varchar funziona:incazz2:

string(101) "INSERT INTO proprietario(Cognome,Nome,DataNascita,LuogoNascita) VALUES ('er','er','1990/3/4','reer')" errore inserimento nuovo proprietarioerer1990/3/4reer


ho cambiato il tipo di DataNascita in varchar ma nemmeno così va...


mysql> describe proprietario;
+--------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+----------------+
| IDProp | int(11) | NO | PRI | NULL | auto_increment |
| Cognome | varchar(30) | YES | | NULL | |
| Nome | varchar(30) | YES | | NULL | |
| DataNascita | varchar(30) | YES | | NULL | |
| LuogoNascita | varchar(40) | YES | | NULL | |
+--------------+-------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)


non so veramente cosa pensare... :crying:
 

DeAndreon

Utente Attivo
9 Giu 2009
39
0
0
E' andato!!!!!!!!!!!!!!!!!!

string(104) "INSERT INTO proprietario(Cognome,Nome,DataNascita,LuogoNascita) VALUES ('tyt','rt','1900/2/2','trwetr')" proprietario inserito con successo

prima non c'era autoincrement, l'ho messo e ora vaaaaa!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Allora, ora devo risolvere un altro mistero... il tipo date per DataNascita. Cambio e vedo che succede....

Una domanda: ma tra il tipo char e varchar che differenza c'è? Non sono tutti e 2 per il tipo stringa?
 

DeAndreon

Utente Attivo
9 Giu 2009
39
0
0
Ho messo anche il tipo date e funziona!:) Finalmente!:) ora posso proseguire inserendo nel form la modifica e la cancellazione dei proprietari nonchè la loro visualizzazione:)

Grazie ancora borgo italia!:) Grazie per il tuo costante interessamento!:)


Grazie anche php_programmer e gli altri che mi hanno aiutato!:)
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
prova ad inserire

$res = mysql_query($query) or die (mysql_error());

e vedi che messaggio di errore ti da

dimenticavo mettilo anche dopo la connessione e selezione del db
 

DeAndreon

Utente Attivo
9 Giu 2009
39
0
0
Funziona tutto bene borgo italia:) Oggi pomeriggio nella pagina iniziale metto anche la parte dove consento di modificare, cancellare, visualizzare i proprietari:)

Certo, non me le dimentico quelle istruzioni:)

Ciao e grazie ancora! Vi terrò aggiornati:D
 
Discussioni simili
Autore Titolo Forum Risposte Data
Monital [PHP] Insert into non inserisce tutti i dati PHP 1
G form php connesso a database ma non inserisce dati PHP 5
L tipo boolean non funzionante su mariadb (mysql). E codice php 7.4. PHP 0
P Data scraping in PHP non funziona PHP 4
L php mysql non salva solo id PHP 21
A php metodo post jquery non da mai errore jQuery 4
M Guestbook - non funziona dopo upgrade di PHP PHP 5
Valerio93 [PHP] non capisco come mai mi da la data NULL PHP 3
S [PHP] non prende la query PHP 0
WebmasterFioriniAndrea [PHP] Problema che non mi fa vedere niente PHP 2
Leshabituelles Non riesco ad aggiornare PHP PHP 0
Max 1 [PHP] Script che funziona in locale e non online PHP 16
R [PHP] pagina inclusa che non viene visualizzata PHP 2
Punix [PHP] query non valida PHP 1
M [PHP] Visualizzare un array partendo dal numero 1 e non 0 PHP 5
gandalf1959 [PHP] Inserimento di più righe non funziona come mi aspetto... PHP 2
M [PHP] Query UPDATE che non mi aggiorna campi seconda tabella PHP 3
M [PHP] header (location..) non funzionante dopo login PHP 3
B [PHP] Valore variabile non riconosciuto PHP 1
M [PHP] Selezionare immagini directory non presenti in db PHP 11
P [PHP] $_GET non preleva variabile nell’URL PHP 4
R mojave php non interpretato PHP 11
M Non corretta lettura del file php.ini della sezione CLI PHP 3
P [PHP] Input Type="date" non va correttamente con Apple PHP 2
Cosina [PHP] Preservare i campi del form solo se l'invio non ha successo PHP 5
S [PHP] Selezionare i campi non in comune con le altre colonne della tabella PHP 4
T interpretare uno script php non fatto da me... PHP 3
M PHP - Funzione non e scrive il risultato PHP 3
L [PHP] case then e campo non riconosciuto PHP 0
T [PHP] aiuto....Fatal error: Uncaught Error:non riesco a capire PHP 1
T [PHP] ...Parse error che non c'è... PHP 7
M [PHP] Non si connette PHP 7
W [PHP] Non esegue il parsing su un dato sito e negli altri si... PHP 0
A Php mail non invia due mail di seguito PHP 3
O PHP 5.6 non riesco ad abilitare TSL 1.2 PHP 1
L [PHP] Nuovo server, query non funzionano PHP 3
M [PHP] Escludere campi non valorizzati PHP 22
Tommy03 Perchè non si apre una pagina PHP PHP 4
F [PHP] if(isset($_POST['Invia'])) non mi riconosce le variabili PHP 3
D [PHP] Update non trasferisce condizione where PHP 1
V Creare tabella mysql con php non funziona PHP 1
V [PHP] Perché non funziona ? PHP 1
V [PHP] Variabile modificata in un if non mantiene quel valore PHP 5
alessandra86 [PHP] Elementi di un array non visualizzabili PHP 7
C [PHP] non trovo l'errore? PHP 3
A [PHP] Non prende variabile $provincia ma tutte le altre si PHP 6
M [css][php] codice php esterno non vede il css PHP 6
M [PHP] Non calcola l'ultimo record inserito PHP 13
M [PHP] Problema IF non riconosciuta PHP 2
webimage [PHP] Non inserimento in tabella PHP 19

Discussioni simili