Gegevens via het web toevoegen
<html>
<head>
<title>Een toevoegpagina maken voor onze tabel telefoonboek</title>
</head>
<body bgcolor="white" text="blue">
<form method="post" action="adrestoevoegen.php">
<br>
<br>
De voornaam
<input type="text" name="voornaam" size="20" maxlength="20"><br>
De achternaam
<input type="text" name="achternaam" size="20" maxlength="40"><br>
Het adres
<input type="text" name="achternaam" size="40" maxlength="40"><br>
De woonplaats
<input type="text" name="woonplaats" size="20" maxlength="20"><br>
Het telefoonnummer
<input type="text" name="telefoonnummer" size="10" maxlength="10"><br>
<input type="submit" value="adressen toevoegen">
</form>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
if($achternaam !="" and $adres !="" and $woonplaats !="" and $telefoonnummer !="")
{
$connectie = mysql_connect('localhost', 'root', '');
mysql_select_db('telefoonboekdb');
$toevoegquery = "INSERT INTO telefoonboektbl
VALUES('','$voornaam','$achternaam','$adres','$woonplaats', '$telefoonnummer')";
$resultaat = mysql_query($toevoegquery);
mysql_close($connectie);
echo "Uw gegevens zijn toegevoegd!";
}
?>
if($achternaam !="" and $adres !="" and $woonplaats !="" and $telefoonnummer !="")
{
$connectie = mysql_connect('localhost', 'root', '');
mysql_select_db('telefoonboekdb');
$toevoegquery = "INSERT INTO telefoonboektbl
VALUES('','$voornaam','$achternaam','$adres','$woonplaats', '$telefoonnummer')";
$resultaat = mysql_query($toevoegquery);
mysql_close($connectie);
echo "Uw gegevens zijn toegevoegd!";
}
?>
</body>
</html>
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
if ($resultaat) {
echo 'Uw gegegevens zijn toegevoegd';
}
else {
echo 'De query:<br>' . $toevoegquery .
'<br>veroorzaakte deze fout:<br>' . mysql_error();
}
?>
if ($resultaat) {
echo 'Uw gegegevens zijn toegevoegd';
}
else {
echo 'De query:<br>' . $toevoegquery .
'<br>veroorzaakte deze fout:<br>' . mysql_error();
}
?>
Hoe zou mysql nu moeten weten in welk kolom welke waarde zou moeten inserten? :P
Even een opzetje:
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?php
$connectie = mysql_connect('localhost', 'root', '');
mysql_select_db('telefoonboekdb');
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$toevoegquery = "INSERT INTO telefoonboektbl(
voornaam,
achternaam,
adres,
woonplaats,
telefoonnummer
)VALUES('".mysql_real_escape_string($_POST['voornaam'])."',
'".mysql_real_escape_string($_POST['achternaam'])."',
'".mysql_real_escape_string($_POST['adres'])."',
'".mysql_real_escape_string($_POST['woonplaats'])."',
'".mysql_real_escape_string($_POST['telefoonnummer'])."')";
$resultaat = mysql_query($toevoegquery);
if(!$resultaat)
{
echo 'Oeps, er ging wat mis..';
}
else
{
echo 'adres toegevoegd.';
}
}
?>
<form method="post" action="adrestoevoegen.php">
<br>
<br>
De voornaam
<input type="text" name="voornaam" size="20" maxlength="20"><br>
De achternaam
<input type="text" name="achternaam" size="20" maxlength="40"><br>
Het adres
<input type="text" name="adres" size="40" maxlength="40"><br>
De woonplaats
<input type="text" name="woonplaats" size="20" maxlength="20"><br>
Het telefoonnummer
<input type="text" name="telefoonnummer" size="10" maxlength="10"><br>
<input type="submit" value="adressen toevoegen">
</form>
$connectie = mysql_connect('localhost', 'root', '');
mysql_select_db('telefoonboekdb');
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$toevoegquery = "INSERT INTO telefoonboektbl(
voornaam,
achternaam,
adres,
woonplaats,
telefoonnummer
)VALUES('".mysql_real_escape_string($_POST['voornaam'])."',
'".mysql_real_escape_string($_POST['achternaam'])."',
'".mysql_real_escape_string($_POST['adres'])."',
'".mysql_real_escape_string($_POST['woonplaats'])."',
'".mysql_real_escape_string($_POST['telefoonnummer'])."')";
$resultaat = mysql_query($toevoegquery);
if(!$resultaat)
{
echo 'Oeps, er ging wat mis..';
}
else
{
echo 'adres toegevoegd.';
}
}
?>
<form method="post" action="adrestoevoegen.php">
<br>
<br>
De voornaam
<input type="text" name="voornaam" size="20" maxlength="20"><br>
De achternaam
<input type="text" name="achternaam" size="20" maxlength="40"><br>
Het adres
<input type="text" name="adres" size="40" maxlength="40"><br>
De woonplaats
<input type="text" name="woonplaats" size="20" maxlength="20"><br>
Het telefoonnummer
<input type="text" name="telefoonnummer" size="10" maxlength="10"><br>
<input type="submit" value="adressen toevoegen">
</form>
Gewijzigd op 07/04/2012 11:45:12 door Bart V B
Bart V B op 07/04/2012 10:04:46:
Je vergeet het een en ander.
Hoe zou mysql nu moeten weten in welk kolom welke waarde zou moeten inserten? :P
Hoe zou mysql nu moeten weten in welk kolom welke waarde zou moeten inserten? :P
Als je geen kolommen opgeeft in het INSERT statement dan gaat mysql ervan uit dat er een waarde wordt gegeven voor elke kolom in de tabel, in de volgorde zoals de kolommen zijn gedefinieerd. Strict genomen hoef je dus geen kolommen mee te geven.
Dat gezegd hebbende, ik vind het geen nette methode. Ik ben het dan ook helemaal eens met je verbetering om wel alle kolommen te benoemen. Niet alleen is het foutbestendiger (als je later nog eens een kolom toevoegt krijg je geen problemen), het is ook nog eens efficienter omdat je met het benoemen van de kolommen niet alle kolommen hoeft mee te nemen. Kolommen met automatische waardes of waardes die niet ingevuld hoeven te worden kan je dan dus weglaten.
Als je dus met een lege waarde begint, dan komen je kolommen niet meer overeen.
Stel je eerst kolom is een int en je probeert er een stuk tekst in te proppen, dan kan je heel lang gaan lopen zoeken waarom het niet werkt.
En wat dacht je van een UPDATE query?
Dan word het helemaal spannend.
Gewoon de kolommen benoemen, en je bent van het gehele probleem af.
Gewijzigd op 07/04/2012 10:43:04 door Bart V B
Bart van B wanneer ik jou script toepas en op de submit knop klik dan krijg ik geen enkele melding en er wordt ook niks toegevoegd in de tabel. Wellicht enige idee waar dat aan kan liggen?
Enige wat ik wilde zeggen is dat het wel kan. Die '' aan het begin (lege waarde) kan best voor een auto_increment zijn. Als je een auto_increment hebt op een int veld en je geeft er een lege waarde aan dan zal mysql dat zien als geen waarde en de automatisch gegenereerde waarde eraan geven via de auto_increment. Je krijgt wel een warning overigens, maar als je die niet uitleest is er natuurlijk niets aan de hand (ahum).
Als je helemaal niets te zien krijg in de code van Bart, wordt het debuggen.
Voeg in de code van Bart op regel 7 eens in
echo 'verwerken formulier;
en op regel 18:
echo $toevoegquery;
Krijg je dan wel wat te zien?
Code hinting geeft aan dat er iets nog niet correct is, waarschijnlijk een teken dat ergens niet goed staat. Wanneer ik tijd heb straks ga ik het oplossen. Als ik eruit bent vermeld ik dat wel. Bedankt voor jullie phphulp.
REQUEST_METHOD moet het zijn..
Typo
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
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
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$toevoegquery = "INSERT INTO telefoonboektbl(
voornaam,
achternaam,
adres,
woonplaats,
telefoonnummer
)VALUES('".mysql_real_escape_string($_POST['voornaam'])."',
'".mysql_real_escape_string($_POST['achternaam'])."',
'".mysql_real_escape_string($_POST['adres'])."',
'".mysql_real_escape_string($_POST['woonplaats'])."',
'".mysql_real_escape_string($_POST['telefoonnummer'])."')";
$resultaat = mysql_query($toevoegquery);
if(!$resultaat)
{
echo 'Oeps, er ging wat mis..';
}
else
{
echo 'adres toegevoegd.';
}
}
?>
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$toevoegquery = "INSERT INTO telefoonboektbl(
voornaam,
achternaam,
adres,
woonplaats,
telefoonnummer
)VALUES('".mysql_real_escape_string($_POST['voornaam'])."',
'".mysql_real_escape_string($_POST['achternaam'])."',
'".mysql_real_escape_string($_POST['adres'])."',
'".mysql_real_escape_string($_POST['woonplaats'])."',
'".mysql_real_escape_string($_POST['telefoonnummer'])."')";
$resultaat = mysql_query($toevoegquery);
if(!$resultaat)
{
echo 'Oeps, er ging wat mis..';
}
else
{
echo 'adres toegevoegd.';
}
}
?>
;) SUPER