database bewerken
hoe moet je dat maken? Zo'n pagina waarin je je gegevens van je database kan bewerken?
met php bijvoorbeeld. maar vraag nou eens wat je echt wil
Hier een screenshot met wat ik bedoel:
http://i9.photobucket.com/albums/a58/Azur_Ugluk/php.jpg
Als je in de veldjes dingen invult, dan wordt dat doorgegeven aan de database die het dan verwerkt. Ik wil zoiets maken, maar hoe doe je dat?
Wat wil je precies gaan bewerken?
zoek onder scripts eens op formulieren. Dat levert een hoop resultaten op!
- type
- registratie
- maatschappij
- waar is foto genomen
- datum
- naam fotograaf
- commentaar
- URL foto
(even voor jou eigen duidelijkheid, we doen phphulp, niet phpvoorkauw)
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<?php
mysql_connect("localhost","gebruikersnaam","wachtwoord");
mysql_select_db("databasenaam");
if ($_SERVER['REQUEST_METHOD'] == "POST") //controle of er op de submit knop gedrukt is
{
extract($_POST); //alle ingevulde informatie ophalen, deze worden in een variabele gestopt met dezelfde naam als het veld.
// de query voor het invoegen in de database.
$query = "INSERT INTO
fotos
(type,
registratie,
maatschappij,
waar,
datum,
naamfotograaf,
commentaar,
urlfoto)
VALUES
('".$type."',
'".$registratie."',
'".$maatschappij."',
'".$waar."',
'".$datum."',
'".$naamfotograaf."',
'".$commentaar."',
'".$urlfoto."')";
$result = mysql_query($query) or die (mysql_error()); //de foutafhandeling geeft een foutmelding als de query mislukt.
header("Location: pagina.php"); // dit is voor het doorsturen naar een andere pagina na het submitten, pagina zelf even veranderen.
}
else // is er niet op de submit knop gedrukt, dan het formulier weergeven.
{
?>
<form action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
<table>
<tr>
<td>Type</td>
<td><input type="text" name="type" id="type"></td>
</tr>
<tr>
<td>Registratie</td>
<td><input type="text" name="registratie" id="registratie"></td>
</tr>
<tr>
<td>Maatschappij</td>
<td><input type="text" name="maatschappij" id="maatschappij"></td>
</tr>
<tr>
<td>Waar genomen?</td>
<td><input type="text" name="waar" id="waar"></td>
</tr>
<tr>
<td>Datum</td>
<td><input type="text" name="dag" id="dag" size="1"> - <input type="text" name="maand" id="maand" size="1"> - <input type="text" name="jaar" id="jaar" size="2"></td>
</tr>
<tr>
<td>Naam Fotograaf</td>
<td><input type="text" name="naamfotograaf" id="naamfotograaf"></td>
</tr>
<tr>
<td>Commentaar</td>
<td><input type="text" name="commentaar" id="commentaar"></td>
</tr>
<tr>
<td>URL Foto</td>
<td><input type="text" name="urlfoto" id="urlfoto"></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="submit" id="submit" value="Opslaan"></td>
</tr>
</table>
</form>
<?php
}
?>
mysql_connect("localhost","gebruikersnaam","wachtwoord");
mysql_select_db("databasenaam");
if ($_SERVER['REQUEST_METHOD'] == "POST") //controle of er op de submit knop gedrukt is
{
extract($_POST); //alle ingevulde informatie ophalen, deze worden in een variabele gestopt met dezelfde naam als het veld.
// de query voor het invoegen in de database.
$query = "INSERT INTO
fotos
(type,
registratie,
maatschappij,
waar,
datum,
naamfotograaf,
commentaar,
urlfoto)
VALUES
('".$type."',
'".$registratie."',
'".$maatschappij."',
'".$waar."',
'".$datum."',
'".$naamfotograaf."',
'".$commentaar."',
'".$urlfoto."')";
$result = mysql_query($query) or die (mysql_error()); //de foutafhandeling geeft een foutmelding als de query mislukt.
header("Location: pagina.php"); // dit is voor het doorsturen naar een andere pagina na het submitten, pagina zelf even veranderen.
}
else // is er niet op de submit knop gedrukt, dan het formulier weergeven.
{
?>
<form action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
<table>
<tr>
<td>Type</td>
<td><input type="text" name="type" id="type"></td>
</tr>
<tr>
<td>Registratie</td>
<td><input type="text" name="registratie" id="registratie"></td>
</tr>
<tr>
<td>Maatschappij</td>
<td><input type="text" name="maatschappij" id="maatschappij"></td>
</tr>
<tr>
<td>Waar genomen?</td>
<td><input type="text" name="waar" id="waar"></td>
</tr>
<tr>
<td>Datum</td>
<td><input type="text" name="dag" id="dag" size="1"> - <input type="text" name="maand" id="maand" size="1"> - <input type="text" name="jaar" id="jaar" size="2"></td>
</tr>
<tr>
<td>Naam Fotograaf</td>
<td><input type="text" name="naamfotograaf" id="naamfotograaf"></td>
</tr>
<tr>
<td>Commentaar</td>
<td><input type="text" name="commentaar" id="commentaar"></td>
</tr>
<tr>
<td>URL Foto</td>
<td><input type="text" name="urlfoto" id="urlfoto"></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="submit" id="submit" value="Opslaan"></td>
</tr>
</table>
</form>
<?php
}
?>
Let er bij het maken van de database op dat je alle velden van het goede type maakt, en dat je er ook nog een kolom id bij zet.
Ik heb het nu allemaal gewoon tekstvelden gemaakt, maar het is misschien verstandiger om bijv. de fotograaf een selectieveld te maken. Dat wordt het script als volgt.
Je dient dan wel een extra tabel te maken met de namen van de fotografen erin. En het veld naamfotograaf moet veranderd worden naar een INT.
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
<?php
mysql_connect("localhost","gebruikersnaam","wachtwoord");
mysql_select_db("databasenaam");
if ($_SERVER['REQUEST_METHOD'] == "POST") //controle of er op de submit knop gedrukt is
{
extract($_POST); //alle ingevulde informatie ophalen, deze worden in een variabele gestopt met dezelfde naam als het veld.
// de query voor het invoegen in de database.
$query = "INSERT INTO
fotos
(type,
registratie,
maatschappij,
waar,
datum,
naamfotograaf,
commentaar,
urlfoto)
VALUES
('".$type."',
'".$registratie."',
'".$maatschappij."',
'".$waar."',
'".$datum."',
'".$naamfotograaf."',
'".$commentaar."',
'".$urlfoto."')";
$result = mysql_query($query) or die (mysql_error()); //de foutafhandeling geeft een foutmelding als de query mislukt.
header("Location: pagina.php"); // dit is voor het doorsturen naar een andere pagina na het submitten, pagina zelf even veranderen.
}
else // is er niet op de submit knop gedrukt, dan het formulier weergeven.
{
//query voor het ophalen van alle fotograven welke later weergegeven zullen worden in een lijst.
$query = "SELECT
id,
naam
FROM
fotografen";
$result = mysql_query($query) or die (mysql_error());
?>
<form action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
<table>
<tr>
<td>Type</td>
<td><input type="text" name="type" id="type"></td>
</tr>
<tr>
<td>Registratie</td>
<td><input type="text" name="registratie" id="registratie"></td>
</tr>
<tr>
<td>Maatschappij</td>
<td><input type="text" name="maatschappij" id="maatschappij"></td>
</tr>
<tr>
<td>Waar genomen?</td>
<td><input type="text" name="waar" id="waar"></td>
</tr>
<tr>
<td>Datum</td>
<td><input type="text" name="dag" id="dag" size="1"> - <input type="text" name="maand" id="maand" size="1"> - <input type="text" name="jaar" id="jaar" size="2"></td>
</tr>
<tr>
<td>Naam Fotograaf</td>
<td><select name="naamfotograaf" id="naamfotograaf">
<?php
while ($row = mysql_fetch_array($result) //while loop wordt net zolang herhaald totdat alle records geselecteerd in de query afgegaan zijn.
{
echo('<option value="'.$row['id'].'">'.$row['naam'].'</option>');
}
?>
</select>
</td>
</tr>
<tr>
<td>Commentaar</td>
<td><input type="text" name="commentaar" id="commentaar"></td>
</tr>
<tr>
<td>URL Foto</td>
<td><input type="text" name="urlfoto" id="urlfoto"></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="submit" id="submit" value="Opslaan"></td>
</tr>
</table>
</form>
<?php
}
?>
mysql_connect("localhost","gebruikersnaam","wachtwoord");
mysql_select_db("databasenaam");
if ($_SERVER['REQUEST_METHOD'] == "POST") //controle of er op de submit knop gedrukt is
{
extract($_POST); //alle ingevulde informatie ophalen, deze worden in een variabele gestopt met dezelfde naam als het veld.
// de query voor het invoegen in de database.
$query = "INSERT INTO
fotos
(type,
registratie,
maatschappij,
waar,
datum,
naamfotograaf,
commentaar,
urlfoto)
VALUES
('".$type."',
'".$registratie."',
'".$maatschappij."',
'".$waar."',
'".$datum."',
'".$naamfotograaf."',
'".$commentaar."',
'".$urlfoto."')";
$result = mysql_query($query) or die (mysql_error()); //de foutafhandeling geeft een foutmelding als de query mislukt.
header("Location: pagina.php"); // dit is voor het doorsturen naar een andere pagina na het submitten, pagina zelf even veranderen.
}
else // is er niet op de submit knop gedrukt, dan het formulier weergeven.
{
//query voor het ophalen van alle fotograven welke later weergegeven zullen worden in een lijst.
$query = "SELECT
id,
naam
FROM
fotografen";
$result = mysql_query($query) or die (mysql_error());
?>
<form action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
<table>
<tr>
<td>Type</td>
<td><input type="text" name="type" id="type"></td>
</tr>
<tr>
<td>Registratie</td>
<td><input type="text" name="registratie" id="registratie"></td>
</tr>
<tr>
<td>Maatschappij</td>
<td><input type="text" name="maatschappij" id="maatschappij"></td>
</tr>
<tr>
<td>Waar genomen?</td>
<td><input type="text" name="waar" id="waar"></td>
</tr>
<tr>
<td>Datum</td>
<td><input type="text" name="dag" id="dag" size="1"> - <input type="text" name="maand" id="maand" size="1"> - <input type="text" name="jaar" id="jaar" size="2"></td>
</tr>
<tr>
<td>Naam Fotograaf</td>
<td><select name="naamfotograaf" id="naamfotograaf">
<?php
while ($row = mysql_fetch_array($result) //while loop wordt net zolang herhaald totdat alle records geselecteerd in de query afgegaan zijn.
{
echo('<option value="'.$row['id'].'">'.$row['naam'].'</option>');
}
?>
</select>
</td>
</tr>
<tr>
<td>Commentaar</td>
<td><input type="text" name="commentaar" id="commentaar"></td>
</tr>
<tr>
<td>URL Foto</td>
<td><input type="text" name="urlfoto" id="urlfoto"></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="submit" id="submit" value="Opslaan"></td>
</tr>
</table>
</form>
<?php
}
?>
Tot slot moet je uiteraard nog wel je gebruikersnaam en wachtwoord enz invullen in de connectiegegevens.
Ik vind het heel jofel wat je doet, maar ik moet nu toch even melden (niet om te zeuren, maar voor de netheid en veiligheid) dat ik de errorafhandeling mis en dat je script mysql-injection gevoelig is.
Pas dit z.s.m. aan, gebruik dus een DATE om een datum in op te slaan en gebruik de functie checkdate() om te controleren of de datum wel correct is. Doe je dat niet, kom je gegarandeerd in de problemen.