PDA

View Full Version : [PHP - MYSQL]Inserimento record tramite form html


Sick Boy
29-08-2014, 10:09
Buongiorno a tutti,
mi sto addentrando nella programmazione web utilizzando php e mysql

Ho creato un database chiamato nomi, in cui ho inserito una tabella chiamata indirizzi composta dai campi:

- Titolo (es: dr., ing.)
- Nome
- Cognome
- Indirizzo
- CAP
- Città
- Provincia

ho poi scritto due file .php che sono rispettivamente dbinsert.php

<html>
<head>
<title>Inserimento di un record nel database</title>

</head>
<body>
<table>
<form method="post" action="insert.php">
<tr><td>Titolo</td>
<td><input type="text" name="titolo" size="5" maxlenght="5"></td></tr>
<tr><td>Nome</td>
<td><input type="text" name="nome" size="20" maxlenght="20"></td></tr>
<tr><td>Cognome</td>
<td><input type="text" name="cognome" size="20" maxlenght="20"></td></tr>
<tr><td>Indirizzo</td>
<td><input type="text" name="indirizzo" size="20" maxlenght="20"></td></tr>
<tr><td>CAP</td>
<td><input type="text" name="cap" size="5" maxlenght="5"></td></tr>
<tr><td>Citta'</td>
<td><input type="text" name="citta" size="20" maxlenght="20"></td></tr>
<tr><td>Provincia</td>
<td><input type="text" name="provincia" size="2" maxlenght="2"></td></tr>
<tr><td><input type="submit" value="INSERISCI"></td></tr>
</form>
</table>
</body>
</html>

che, al completamento del form, richiama il file insert.php

<html>
<head>
<title>Inserimento di un record nel database</title>

</head>
<body>
<?php
$host = 'localhost';
$user = 'root';
$password = 'root';
$database = 'nomi';

$db = mysql_connect($host, $user, $password)
or die("Impossibile connettersi al server $host");

mysql_select_db($database, $db)
or die("Impossibile connettersi al database $database");

$query = "insert into nomi.indirizzi" .
"(titolo, nome, cognome, indirizzo, cap, città, provincia) " .
"VALUES('" .
$_REQUEST['titolo'] . "','" .
$_REQUEST['nome'] . "','" .
$_REQUEST['cognome'] . "','" .
$_REQUEST['indirizzo'] . "','" .
$_REQUEST['cap'] . "','" .
$_REQUEST['citta'] . "','" .
$_REQUEST['provincia'] . "')'";

if(!mysql_query($query))
{
print "Attenzione, impossibile inserire il record";
}
else
{
print "Record inserito!";
}

mysql_close($db);
?>
</body>
</html>

tuttavia, quando compilo il form, il file insert.php mi restituisce il messaggio di errore "Attenzione, impossibile inserire il record" e non riesco a capire dove sia l'errore.

Sapete darmi una mano?

A disposizione per altri chiarimenti!

MicheleRaponi
29-08-2014, 10:27
la query che crei è la seguente:
insert into nomi.indirizzi(titolo, nome, cognome, indirizzo, cap, città , provincia) VALUES('aaa','bbb','ccc','ddd','eee','fff','ggg')'

sicuramente ti manca uno spazio dopo la parola indirizzi e dopo VALUES, inoltre c'è l'apice di troppo a fine query.

Sick Boy
29-08-2014, 10:34
la query che crei è la seguente:
insert into nomi.indirizzi(titolo, nome, cognome, indirizzo, cap, città , provincia) VALUES('aaa','bbb','ccc','ddd','eee','fff','ggg')'

sicuramente ti manca uno spazio dopo la parola indirizzi, inoltre c'è l'apice di troppo a fine query.

ho provato ad aggiungere lo spazio dopo indirizzi e a togliere l'apice dopo la parentesi tonda chiusa, ma non mi inserisce lo stesso il record nel database.

in seguito ho risolto: stampando la query a video mi dava un simbolo strano in corrispondenza della a accentata di città. togliendola dal database l'inserimento della query è andato a buon fine.

un solo dubbio: stampando il database e i suoi record ho notato che l'id del mio inserimento (partono da 1 e sono autoincrementati) è settato a 32 invece del 21, primo spazio libero.

è perché mi ha considerato anche tutti gli inserimenti sbagliati?

grazie ancora