update table
Hoe kan ik ervoor zorgen dat de inhoud van mijn tabel in een formuliertje te bewerken is?
Ik zie je de laatste dagen een hoop vragen stellen, wat uiteraard geen enkel probleem is. Maar ik begin me toch wel stiekem af te vragen of je niet hoog-gegrepen praktijk wilt uitvoeren?
- Kan je al een formulier maken in HTML?
- Kan je al een formulier verwerken, en de ingevulde invoer door PHP laten opvragen?
Als je dit kan, dan kan je eens kijken naar een tutorial over MySQL(i).
Een goede is: http://phptuts.nl/view/41/
Als je een beetje goed doorleest en oefent dan kom je vanzelf bij de UPDATE-query uit, die items in de database kan wijzigen.
- bijna niks in HTML is onbekend van mij, ik kan dus goed formulieren maken.
- ik kan formulieren verwerken, zoals een gastenboek of contact formulier.
Toevoeging op 21/02/2015 21:41:06:
Aar, is het misschien mogelijk als ik dit doe:
Ik selecteer de inhoud uit een tabel (SELECT ... from ...) en laat deze inhoud weergeven in een textarea, dit kan bewerkt worden en dan met een UPDATE query het laten opslaan?
Gewijzigd op 21/02/2015 21:41:38 door - Ariën -
Toevoeging op 21/02/2015 21:49:43:
Is dit in de goede richting?
index.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
24
25
26
27
28
29
30
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
<?php
include 'connect.php';
$inhoud = mysqli_query($db, "SELECT Inhoud FROM pages WHERE ID=" . 1);
if(!$inhoud) {
echo 'Er is een MYSQL fout opgetreden. ' . mysqli_error($db);
exit();
}
if($inhoudv = mysqli_fetch_assoc($inhoud)) {
}
{;?>
<form method="post" action="update.php">
<textarea name="text">
<?php echo '' . $inhoudv['Inhoud'] ?>
</textarea>
<input class="button" type="submit" name="update" value="Update" />
</form>
<?;}
?>
include 'connect.php';
$inhoud = mysqli_query($db, "SELECT Inhoud FROM pages WHERE ID=" . 1);
if(!$inhoud) {
echo 'Er is een MYSQL fout opgetreden. ' . mysqli_error($db);
exit();
}
if($inhoudv = mysqli_fetch_assoc($inhoud)) {
}
{;?>
<form method="post" action="update.php">
<textarea name="text">
<?php echo '' . $inhoudv['Inhoud'] ?>
</textarea>
<input class="button" type="submit" name="update" value="Update" />
</form>
<?;}
?>
Toevoeging op 21/02/2015 22:19:51:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
include("config.php");
if(isset($_POST['submit'])) {
$updated = trim($_POST['text']);
mysql_query("UPDATE pages SET inhoud='".$updated."' WHERE id=1");
}
?>
include("config.php");
if(isset($_POST['submit'])) {
$updated = trim($_POST['text']);
mysql_query("UPDATE pages SET inhoud='".$updated."' WHERE id=1");
}
?>
- Regel 24 waarom een lege tekst plakken aan $inhoudv['inhoud']
- Je vergeet achter $inhoudv['inhoud'] een puntkomma.
- Noem niet alles inhoud maar gebruik toepasselijke namen.
Nog een advies:
- gebruik uitsluitend kleine letters en underscores voor je tabelnamen en kolomnamen.
- geef je formuliervelden dezelfde naam als je kolomnaam.
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
include 'connect.php';
$result = mysqli_query($db, "SELECT Inhoud FROM pages WHERE ID=" . 1);
if(!$result) {
echo 'Er is een MYSQL fout opgetreden. ' . mysqli_error($db);
exit();
}
if(!$row = mysqli_fetch_assoc($result)) {
echo 'Geen record gevonden voor pagina met ID=' . $id;
exit();
}
?>
<form method="post" action="update.php">
<textarea name="text">
<?php echo $row['Inhoud']; ?>
</textarea>
<input class="button" type="submit" name="update" value="Update" />
</form>
include 'connect.php';
$result = mysqli_query($db, "SELECT Inhoud FROM pages WHERE ID=" . 1);
if(!$result) {
echo 'Er is een MYSQL fout opgetreden. ' . mysqli_error($db);
exit();
}
if(!$row = mysqli_fetch_assoc($result)) {
echo 'Geen record gevonden voor pagina met ID=' . $id;
exit();
}
?>
<form method="post" action="update.php">
<textarea name="text">
<?php echo $row['Inhoud']; ?>
</textarea>
<input class="button" type="submit" name="update" value="Update" />
</form>
Gewijzigd op 21/02/2015 22:21:13 door Frank Nietbelangrijk
Toevoeging op 21/02/2015 22:59:54:
Hoe kan ik nu hier het ?id=1 verhaal op toe passen?
Het lukt mij niet
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
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
if(isset($_GET['id']) && is_int($_GET['id']))
{
echo $_GET['id'];
}
else
{
//Verkeerde waarden uitfilteren
$id = intval($_GET['id']);
$hacked = 1;
if(!empty($id))
{
$id = intval($_GET['id']);
}
else
{
$hacked = 2;
die("<font face='arial'>Deze functie is <u>niet</u> mogelijk.</font>");
}
if($hacked == 1)
{
//niks
}
else
{
//niks
}
}
{
echo $_GET['id'];
}
else
{
//Verkeerde waarden uitfilteren
$id = intval($_GET['id']);
$hacked = 1;
if(!empty($id))
{
$id = intval($_GET['id']);
}
else
{
$hacked = 2;
die("<font face='arial'>Deze functie is <u>niet</u> mogelijk.</font>");
}
if($hacked == 1)
{
//niks
}
else
{
//niks
}
}
Toevoeging op 21/02/2015 23:00:47:
Dit heb ik op update.php toegepast, maar als ik dit doe geeft die na het versturen Deze fucntie is niet mogelijk weer en doet geen actie.
Zet <textarea> en </textarea> zo dicht mogelijk tegen elkaar aan. Alles wat er tussen zit (ook linefeeds) komt in de textarea te staan.
voorbeeld :
Toevoeging op 21/02/2015 23:03:19:
Moet ik het ?id=1 in het index.php toepassen, maar hoe neem ik dat id mee naar update.php
En gebruik ook htmlspecialchars bij de textarea
Gewijzigd op 21/02/2015 23:17:58 door Ivo P
Toevoeging op 22/02/2015 21:52:02:
Hoe zorg ik nu voor de foutafhandeling, als bijvoorbeeld maximale is overschreden e.d.
Gewijzigd op 22/02/2015 00:34:02 door Niels Rietveld