aanvinken nieuwsbrief optie ( naar mysql)
Op m'n website heb ik een reserverinsformulier van een restaurant die de reservering keurig mailt. Met de optie om "houd mij op de hoogte" aan te vinken voor de nieuwsbrief.
Ik heb nu in een testomgeving een zelfde verhaal welk ook de gegevens in een database opslaat maar hoe krijg ik het voor elkaar dat het aanvinken werkt op het toevoegen van het mailadres in de db? Bij niet aangevinkt dus email niet opslaan.
het zal vast iets heel simpel zijn met insert
dank hans
En als er dan een vinkje geplaatst wordt zet je de nieuwsbrief op 1 en anders op 0 :)
1 = wel nieuwsbrief
0 = geen nieuwsbrief
Met isset kan je kijken of het vinkje is aangevinkt.
Als isset false teruggeeft is hij niet aangevinkt. Bij true wel.
Bij false geef je een 0 door aan de query
Bij true geef je een 1 door.
Of heb je een aparte lijst met emailadressen?
Dus dat je hetzelfde emailadres meerdere keren in de database hebt staan? Zo ja: ga normaliseren!
Eddy Erkelens op 21/09/2012 09:30:12:
Gewoon altijd opslaan in de database: of een 1 of een 0.
1 = wel nieuwsbrief
0 = geen nieuwsbrief
............
1 = wel nieuwsbrief
0 = geen nieuwsbrief
............
Lol, ongeveer same story :)
Voor de nieuwsbrief heb ik een gekocht script en dat werkt perfect.
De tabel van dat script waar de email adressen instaan wil ik dus koppelen aan m'n reserveringsformulier en zou dus mooier zijn als deze niet de email er inzet bij niet aangevinkt.
stukje mysql uit m'n testomgeving, deze plaatst ( nu altijd) de email in personen en de reservering in reserveringen.
En zorgt ervoor dat de email er niet dubbel inkomt. de rij reserveringen moet ik nog uitbreiden ( en ook de email adres komt daar dan wel in)
//maak een verbinding met de database
$link = mysql_connect("localhost", "mijnusersnaam","mijnpass");
//selecteer de juiste database
mysql_select_db("mailing", $link);
//kijk of een persoon al bestaat
$sql = "SELECT id FROM personen WHERE email_address = '" . $email . "'";
echo $sql . "<br />\n";
$result = mysql_query($sql);
if(mysql_num_rows($result) > 0){
//vraag de id van een bestaand persoon op
$row = mysql_fetch_array($result, MYSQL_ASSOC);
$persoon_id = $row['id'];
} else {
//voeg de naam en email toe in de tabel personen
$sql = "INSERT INTO personen(email_name, email_address) VALUES ('" . $name . "', '" . $email . "')";
echo $sql . "<br />\n";
mysql_query($sql);
//vraag de id van de nieuwe persoon op
$persoon_id = mysql_insert_id();
}
//voeg de reactie toe in de tabel reserveringen. Gebruik de id van de zojuist toegevoegde persoon
$sql = "INSERT INTO reserveringen(persoon_id, reactie, datum) VALUES (" . $persoon_id . ", '" . $message . "', NOW())";
echo $sql . "<br />\n";
mysql_query($sql);
//sluit de database
mysql_close($link);
Gewijzigd op 21/09/2012 09:48:35 door Hans v es
Zelfde tijd ook, op 3 seconden na. Jammer dat je geen melding krijgt als er in de tussentijd nog een bericht is geplaatst.