Data updaten uit database
Ik ben net begonnen met PHP en probeer maar eens wat uit.
Probleem
Mensen kunnen hun email en naam invullen en dat komt dan in een database terecht. Met deze informatie kan iets gedaan worden alleen als de rij Sturen = Ja. Maar standaard is Sturen = Nee.
Als Sturen = Ja dan moet er komen te staan dat de persoon lid is.
Als Sturen = Nee dan moet er een formulier komen (of iets dergelijks) waarin je Sturen = Nee in Sturen = Ja kunt veranderen.
Maar hier loop ik vast. Het lukt me niet om een goede code te schrijven (echter simpel) die dan zichtbaar wordt. Dus ik krijg steeds als ik het online gooi (bij hosting2go.nl) een witscherm op die pagina en de code wordt ook niet weergeven..
Wat doe ik fout?
Quote:
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
include('../connect.php');
mysql_select_db("Blog2011", $con);
$result = mysql_query("SELECT * FROM DataMail ORDER BY Id LIMIT 2");
echo "<table border='0' class='table_mail'>";
echo "<tr>";
echo "<td style='vertical-align: top; width: 30%; font-weight: bold;'>" . "Naam" . "</td>";
echo "<td style='vertical-align: top; width: 50%; font-weight: bold;'>" . "Email" . "</td>";
echo "<td style='vertical-align: top; width: 20%; font-weight: bold;'>" . "Toevoegen of verwijderen" . "</td>";
echo "</tr>";
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td style='vertical-align: top; width: 30%;'>" . $row['Naam'] . "</td>";
echo "<td style='vertical-align: top; width: 50%;'>" . $row['Email'] . "</td>";
echo "<td style='vertical-align: top; width: 20%;'>" . if ($row['Sturen'] == "Nee") {
"<form action='index.php' name='toevoegen' method='POST'>
<input type='radio' name='toevoegen' value='false'>Verwijderen
<br>
<input type='radio' name='toevoegen' value='true'>Toevoegen
<br>
<input type='submit' name='verzenden' value='Ok'>
</form>"
if ($_POST['toevoegen'] == "false" {
mysql_query("DELETE FROM DataMail WHERE Naam='". $_GET[Naam] ."' AND Email='". $_GET[Email] ."'");
}
if ($_POST['toevoegen'] == "true" {
mysql_query("UPDATE DataMail SET Sturen = 'Ja'
WHERE Naam='". $_GET[Naam] ."' AND Email='". $_GET[Email] ."'");
}
}
else {
echo "Lid";
}
. "</td>";
echo "</tr>";
}
echo "</table>";
mysql_close($con);
?>
include('../connect.php');
mysql_select_db("Blog2011", $con);
$result = mysql_query("SELECT * FROM DataMail ORDER BY Id LIMIT 2");
echo "<table border='0' class='table_mail'>";
echo "<tr>";
echo "<td style='vertical-align: top; width: 30%; font-weight: bold;'>" . "Naam" . "</td>";
echo "<td style='vertical-align: top; width: 50%; font-weight: bold;'>" . "Email" . "</td>";
echo "<td style='vertical-align: top; width: 20%; font-weight: bold;'>" . "Toevoegen of verwijderen" . "</td>";
echo "</tr>";
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td style='vertical-align: top; width: 30%;'>" . $row['Naam'] . "</td>";
echo "<td style='vertical-align: top; width: 50%;'>" . $row['Email'] . "</td>";
echo "<td style='vertical-align: top; width: 20%;'>" . if ($row['Sturen'] == "Nee") {
"<form action='index.php' name='toevoegen' method='POST'>
<input type='radio' name='toevoegen' value='false'>Verwijderen
<br>
<input type='radio' name='toevoegen' value='true'>Toevoegen
<br>
<input type='submit' name='verzenden' value='Ok'>
</form>"
if ($_POST['toevoegen'] == "false" {
mysql_query("DELETE FROM DataMail WHERE Naam='". $_GET[Naam] ."' AND Email='". $_GET[Email] ."'");
}
if ($_POST['toevoegen'] == "true" {
mysql_query("UPDATE DataMail SET Sturen = 'Ja'
WHERE Naam='". $_GET[Naam] ."' AND Email='". $_GET[Email] ."'");
}
}
else {
echo "Lid";
}
. "</td>";
echo "</tr>";
}
echo "</table>";
mysql_close($con);
?>
PS: Ja, ik heb me al het tiereluitje gezocht.
PS2: Graag antwoord met een voorbeeld. Anders snap ik het niet A.
En waarom al die dubbel quotes bij 10 t/m 12?
Hoi, ik heb het zo geleerd. Bij een ander script van mij werkt het wel. Dus daar ligt de fout niet volgens mij. Maar kan ik die beter weghalen?
Je moet $vars buiten quotes houden, bij een normale tekst mag het wel. Maar dan hoef je alleen een quote te 'openen' en te 'sluiten'.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if (isset ($_POST['toevoegen'])) {
if ($_POST['toevoegen'] == 'true') {
$sql = "
UPDATE DataMail
SET Sturen = 'Ja'
WHERE Naam = '" . mysql_real_escape_string ($_GET['Naam']) . "'
AND Email = '" . mysql_real_escape_string ($_GET['Email']) . "'
";
if (mysql_query ($sql)) {
$msg = 'Record aangepast'; // deze kun je verderop in je script echoën
}
}
}
}
?>
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if (isset ($_POST['toevoegen'])) {
if ($_POST['toevoegen'] == 'true') {
$sql = "
UPDATE DataMail
SET Sturen = 'Ja'
WHERE Naam = '" . mysql_real_escape_string ($_GET['Naam']) . "'
AND Email = '" . mysql_real_escape_string ($_GET['Email']) . "'
";
if (mysql_query ($sql)) {
$msg = 'Record aangepast'; // deze kun je verderop in je script echoën
}
}
}
}
?>
Quote:
include('../connect.php');
mysql_select_db("Blog2011", $con);
$result = mysql_query("SELECT * FROM DataMail ORDER BY Id LIMIT 2");
echo "<table border='0' class='table_mail'>";
echo "<tr>";
echo "<td style='vertical-align: top; width: 30%; font-weight: bold;'>" . "Naam" . "</td>";
echo "<td style='vertical-align: top; width: 50%; font-weight: bold;'>" . "Email" . "</td>";
echo "<td style='vertical-align: top; width: 20%; font-weight: bold;'>" . "Toevoegen of verwijderen" . "</td>";
echo "</tr>";
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td style='vertical-align: top; width: 30%;'>" . $row['Naam'] . "</td>";
echo "<td style='vertical-align: top; width: 50%;'>" . $row['Email'] . "</td>";
echo "<td style='vertical-align: top; width: 20%;'>" . if ($row['Sturen'] == "Nee") {
"<form action='index.php' name='toevoegen' method='POST'>
<input type='radio' name='toevoegen' value='false'>Verwijderen
<br>
<input type='radio' name='toevoegen' value='true'>Toevoegen
<br>
<input type='submit' name='verzenden' value='Ok'>
</form>"
}
else {
echo "Lid";
}
. "</td>";
echo "</tr>";
}
echo "</table>";
mysql_close($con);
mysql_select_db("Blog2011", $con);
$result = mysql_query("SELECT * FROM DataMail ORDER BY Id LIMIT 2");
echo "<table border='0' class='table_mail'>";
echo "<tr>";
echo "<td style='vertical-align: top; width: 30%; font-weight: bold;'>" . "Naam" . "</td>";
echo "<td style='vertical-align: top; width: 50%; font-weight: bold;'>" . "Email" . "</td>";
echo "<td style='vertical-align: top; width: 20%; font-weight: bold;'>" . "Toevoegen of verwijderen" . "</td>";
echo "</tr>";
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td style='vertical-align: top; width: 30%;'>" . $row['Naam'] . "</td>";
echo "<td style='vertical-align: top; width: 50%;'>" . $row['Email'] . "</td>";
echo "<td style='vertical-align: top; width: 20%;'>" . if ($row['Sturen'] == "Nee") {
"<form action='index.php' name='toevoegen' method='POST'>
<input type='radio' name='toevoegen' value='false'>Verwijderen
<br>
<input type='radio' name='toevoegen' value='true'>Toevoegen
<br>
<input type='submit' name='verzenden' value='Ok'>
</form>"
}
else {
echo "Lid";
}
. "</td>";
echo "</tr>";
}
echo "</table>";
mysql_close($con);
Zonder dat 'if' gedoetje van mij? En hoe kan ik de $row dan uit DataMail verwijderen? Want dat was ook onderdeel van het form.
Toevoeging op 25/02/2011 20:54:58:
Ik snap er niet veel van. Sorry, beginner he?:P
En wat jij dus vergeten bent is het deleten als ik de opgegeven email helemaal niet wil in mijn database.
(Zou iemand de code kunnen aanpassen?)
Thijs van Vulpen op 25/02/2011 20:34:33:
En wat jij dus vergeten bent is het deleten als ik de opgegeven email helemaal niet wil in mijn database.
Hahaha, nee dat ben ik niet vergeten ;-) Ons forum heet PHPhulp, en niet PHPikmaakjouwscriptwelvoorje.
Toevoeging op 25/02/2011 23:46:34:
Het gaat vooral om deze regel in de tabel (de rest daarboven werkt prima, de andere if(statement) kon ik nog niet checken):
Quote:
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php if ($row['Sturen'] == "Nee") {
"<form action='index.php' name='toevoegen' method='POST'>
<input type='radio' name='toevoegen' value='false'>Verwijderen
<br>
<input type='radio' name='toevoegen' value='true'>Toevoegen
<br>
<input type='submit' name='verzenden' value='Ok'>
</form>";
} ?>
"<form action='index.php' name='toevoegen' method='POST'>
<input type='radio' name='toevoegen' value='false'>Verwijderen
<br>
<input type='radio' name='toevoegen' value='true'>Toevoegen
<br>
<input type='submit' name='verzenden' value='Ok'>
</form>";
} ?>
Toevoeging op 26/02/2011 17:16:36:
Is er niemand die dit probleem begrijpt?