Data updaten uit database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Thijs van Vulpen

Thijs van Vulpen

25/02/2011 20:05:19
Quote Anchor link
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?

Quote:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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.
 
PHP hulp

PHP hulp

29/11/2024 05:54:48
 
Wesley PHP

Wesley PHP

25/02/2011 20:11:12
Quote Anchor link
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?
 
Thijs van Vulpen

Thijs van Vulpen

25/02/2011 20:15:36
Quote Anchor link
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?
 
Wesley PHP

Wesley PHP

25/02/2011 20:19:02
Quote Anchor link
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'.
 
Jan Koehoorn

Jan Koehoorn

25/02/2011 20:25:35
Quote Anchor link
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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
                }
            }
        }
    }

?>
 
Thijs van Vulpen

Thijs van Vulpen

25/02/2011 20:34:33
Quote Anchor link
Dus onder jouw code komt:

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


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?)
 
Jan Koehoorn

Jan Koehoorn

25/02/2011 21:40:43
Quote Anchor link
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.
 
Thijs van Vulpen

Thijs van Vulpen

25/02/2011 21:42:41
Quote Anchor link
Haha, daar heb je gelijk in. Alleen ik snap jouw reactie niet helemaal. Welk deel moet ik weglaten als ik jouw deel (waar?) toevoeg?

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)
PHP script in nieuw venster Selecteer het PHP script
1
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>"
;
                                                                    }
?>





Toevoeging op 26/02/2011 17:16:36:

Is er niemand die dit probleem begrijpt?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.