Hoi allemaal,
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?

<?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);

?>


PS: Ja, ik heb me al het tiereluitje gezocht.
PS2: Graag antwoord met een voorbeeld. Anders snap ik het niet A.
Waarom doe je die punten voor & achter: Naam, Email, Toevoegen op lijn 10 t/m 12.
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'.
Je update doe je pas nadat het formulier getoond wordt. Het is beter om eerst alle business-logica af te handelen en daarna je formulier te tonen. Dus zoiets, bovenin je script:
<?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
}
}
}
}
?>
Dus onder jouw code komt:

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);



Zonder dat 'if' gedoetje van mij? En hoe kan ik de $row dan uit DataMail verwijderen? Want dat was ook onderdeel van het form.

[size=xsmall]Toevoeging op 25/02/2011 20:54:58:[/size]

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.
Haha, daar heb je gelijk in. Alleen ik snap jouw reactie niet helemaal. Welk deel moet ik weglaten als ik jouw deel (waar?) toevoeg?

[size=xsmall]Toevoeging op 25/02/2011 23:46:34:[/size]

Het gaat vooral om deze regel in de tabel (de rest daarboven werkt prima, de andere if(statement) kon ik nog niet checken):

<?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>";
} ?>





[size=xsmall]Toevoeging op 26/02/2011 17:16:36:[/size]

Is er niemand die dit probleem begrijpt?

Reageren