formulier naar database
Ik heb een vraag want ben helemaal het spoor bijster.
ik ben een beetje aan het oefenen met php en nu wil ik een formulier invullen en dit in een database wegschrijven.
huidige situatie:
Ik heb een database restaurants met daarin een tabel restaurant.
daar zitten dit weer in: naam, straat, huisnummer, plaats, postcode, plaats, email, telefoon, keuken.
ik heb mezelf ingevoerd via phpmydmin.
als ik het bestand read.php open krijg ik mooi de inhoud van de DB te zien.. (wat ik handmatig heb ingevoerd)
met het invoerformulier krijg ik niks in de DB..
ben al 4 uur aan het googlen, klooien, en frustreren.. maar het gaat gewoon niet!
wie helpt me verder?? bij voorbaat dank
het formulier
<html>
<head>
<html>
<title>Untitled Document</title>
</head>
<body>
<form action="insert.php" method="post">
Naam: <input type="text" name="naam"><br>
straat: <input type="text" name="straat"><br>
huisnummer: <input type="text" name="huisnummer"><br>
postcode: <input type="text" name="postcode"><br>
woonplaats: <input type="text" name="plaats"><br>
provincie: <input type="text" name="provincie"><br>
email: <input type="text" name="email"><br>
<input type="Submit">
</form>
</body>
</html>
insert.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?
$username="username";
$password="pw";
$database="restaurants";
$naam=$_POST['naam'];
$straat=$_POST['straat'];
$huisnummer=$_POST['huisnummer'];
$postcode=$_POST['postcode'];
$plaats=$_POST['plaats'];
$provincie=$_POST['provincie'];
$email=$_POST['email'];
mysql_connect('localhost',$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
//$query = "INSERT INTO `restaurants`.`restaurant` VALUES ('','$naam','$straat','$huisnummer','$postcode','$plaats','$provincie','$email')";
//mysql_query($query);
$query = "INSERT INTO `restaurants`.`restaurant` (`id`, `naam`, `straat`, `huisnummer`, `postcode`, `plaats`, `provincie`, `email`, `telefoon`, `keuken`) VALUES (NULL, 'test', 'stationweg', '78', '', 'alkmaar', 'limburg', '', '', '')";
mysql_close();
?>
$username="username";
$password="pw";
$database="restaurants";
$naam=$_POST['naam'];
$straat=$_POST['straat'];
$huisnummer=$_POST['huisnummer'];
$postcode=$_POST['postcode'];
$plaats=$_POST['plaats'];
$provincie=$_POST['provincie'];
$email=$_POST['email'];
mysql_connect('localhost',$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
//$query = "INSERT INTO `restaurants`.`restaurant` VALUES ('','$naam','$straat','$huisnummer','$postcode','$plaats','$provincie','$email')";
//mysql_query($query);
$query = "INSERT INTO `restaurants`.`restaurant` (`id`, `naam`, `straat`, `huisnummer`, `postcode`, `plaats`, `provincie`, `email`, `telefoon`, `keuken`) VALUES (NULL, 'test', 'stationweg', '78', '', 'alkmaar', 'limburg', '', '', '')";
mysql_close();
?>
uitlezen:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?
$username="username";
$password="pw";
$database="restaurants";
mysql_connect('localhost',$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
$query="SELECT * FROM restaurant";
$result=mysql_query($query);
$num=mysql_numrows($result);
mysql_close();
echo "<b><center>Database Output</center></b><br><br>";
$i=0;
while ($i < $num) {
$naam=mysql_result($result,$i,"naam");
$straat=mysql_result($result,$i,"straat");
$huisnummer=mysql_result($result,$i,"huisnummer");
$postcode=mysql_result($result,$i,"postcode");
$plaats=mysql_result($result,$i,"plaats");
$provincie=mysql_result($result,$i,"provincie");
$email=mysql_result($result,$i,"email");
echo "<b>Naam: $naam<br>Straat: $straat</b>Huisnummer: $huisnummer<br>postcode: $postcode<br>plaats: $plaats<br>Provincie: $provincie<br>Email: $email<br><hr><br>";
$i++;
}
?>
$username="username";
$password="pw";
$database="restaurants";
mysql_connect('localhost',$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
$query="SELECT * FROM restaurant";
$result=mysql_query($query);
$num=mysql_numrows($result);
mysql_close();
echo "<b><center>Database Output</center></b><br><br>";
$i=0;
while ($i < $num) {
$naam=mysql_result($result,$i,"naam");
$straat=mysql_result($result,$i,"straat");
$huisnummer=mysql_result($result,$i,"huisnummer");
$postcode=mysql_result($result,$i,"postcode");
$plaats=mysql_result($result,$i,"plaats");
$provincie=mysql_result($result,$i,"provincie");
$email=mysql_result($result,$i,"email");
echo "<b>Naam: $naam<br>Straat: $straat</b>Huisnummer: $huisnummer<br>postcode: $postcode<br>plaats: $plaats<br>Provincie: $provincie<br>Email: $email<br><hr><br>";
$i++;
}
?>
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
mysql_connect('localhost',$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
$query = "INSERT INTO `restaurants`.`restaurant` (`id`, `naam`, `straat`, `huisnummer`, `postcode`, `plaats`, `provincie`, `email`, `telefoon`, `keuken`) VALUES (NULL, 'test', 'stationweg', '78', '', 'alkmaar', 'limburg', '', '', '')";
mysql_close();
?>
mysql_connect('localhost',$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
$query = "INSERT INTO `restaurants`.`restaurant` (`id`, `naam`, `straat`, `huisnummer`, `postcode`, `plaats`, `provincie`, `email`, `telefoon`, `keuken`) VALUES (NULL, 'test', 'stationweg', '78', '', 'alkmaar', 'limburg', '', '', '')";
mysql_close();
?>
Je maakt connectie met de DB.
Je schrijft een query.
Je sluit de database.
Dat is zoiets als in de auto stappen, de navigatie computer instellen en dan weer uit de auto stappen en het vreemd vinden dat je nog voor je huis staat....
Misschien de query ook uitvoeren?
Gewijzigd op 31/01/2012 23:13:17 door Erwin H
maar dit staat toch los van dat hij het niet wegschrijft?
dat is in read.php
weet je daar de oplossing voor?
Ik zie in jouw query een "INSERT INTO" staan. Dat staat dus niet los van dat hij het niet wegschrijft, dat IS je wegschrijf query. Als je die dus niet uitvoert komt er niets in je database. Lijkt mij nogal logisch....
ben een paar maanden geleden begonnen met een phpboek en daar ben ik vanaf maandag weer mee begonnen, heb al eerder zo een form gemaakt maar het lukt met echt ni meer
:(
Dat doe je later in je script namelijk wel met andere queries.....
Toevoeging op 31/01/2012 23:37:16:
Sterker nog, het staat zelfs boven de INSERT query, alleen in commentaar. Je had het dus wel goed.
Gebruik geen short-tags voor php
Waarom variabelen kopiëren ($naam = $_POST['naam'], etc)?
Waar is je controle op die variabelen?
Gebruik geen @ om fouten te onderdrukken.
"Or die" is geen foutafhandeling.
Het gebruik van backticks in je query wordt doorgaans afgeraden.
Zorg straks voor beveiliging bij de invoer via je query (mysql_real_escape_string).
id is een auto-increment? Dan hoef je die niet te vullen via je query.
Vraag me ook af of in uitlezen.php het nodig is om al die variabelen uit te maken.
Variabelen buiten quotes. Gebruik daarom bij echo/print ' en in html " --> scheelt escapen.
`drop` dus maar voor de rest is het niet handig... heb ik gelijk?
Dat zijn de backticks waar Obelix het over heeft. Inderdaad heeft het geen nu om die te gebruiken rond niet gereserveerde woorden en daarnaast zou je in principe ook nooit wel gereserveerde woorden moeten gebruiken. Ergo, backticks heb je dus nooit nodig.