Dear Friends,
I have PHP application where I enter emails and emails get stored in mysql database,table, I have an option to unsubscribe as well, which works,
However, Problem application is giving me is in case I unsubscribe one email it deletes all emails from database. table. I have pasted php code and mysql dump.
Any guidance, please.
------------------------------------------------------------------------------------------
kemails.php page which i use to subscribe and unsubscribe
---------------------------------------------------------------------------------------
<?php
//set up a couple of functions function doDB() { global $conn; //connect to server and select database; you may need it $conn = mysql_connect("localhost", "", "") or die(mysql_error()); mysql_select_db("b",$conn) or die(mysql_error()); } function emailChecker($email) {
global $conn, $check_result; //check that email is not already in list $check = "select id from kemails where email = '$email'"; $check_result = mysql_query($check,$conn) or die(mysql_error()); } //determine if they need to see the form or not if ($_POST[op] != "ds") { //they do, so create form block $display_block = " <form method=POST action=""> <p><strong>kemails</strong><br>
<input type=text name=\"email\" size=40 maxlength=150> <p><strong>Action:</strong><br>
<input type=radio name=\"action\" value=\"sub\" checked> subscribe <input type=radio name=\"action\" value=\"unsub\"> unsubscribe <input type=\"hidden\" name=\"op\" value=\"ds\">
<p><input type=submit name=\"submit\" value=\"Submit Form\"></p>
</form>"; } else if (($_POST[op] == "ds") && ($_POST[action] == "sub")) {
//trying to subscribe; validate email address if ($_POST[email] == "") { header("Location: kemails.php"); exit; } //connect to database
doDB(); //check that email is in list
emailChecker($_POST[email]); //get number of results and do action
if (mysql_num_rows($check_result) < 1) { //add record $sql = "insert into kemails values('', '$_POST[email]')"; $result = mysql_query($sql,$conn) or die(mysql_error()); $display_block = "<P>Thanks for signing up!</P>"; } else { //print failure message $display_block = "<P>You're already subscribed!</P>"; } } else if (($_POST[op] == "ds") && ($_POST[action] == "unsub")) { //trying to unsubscribe; validate email address if ($_POST[email] == "") { header("Location: kemails.php"); exit; } //connect to database
doDB(); //check that email is in list
emailChecker($_POST[email]); //get number of results and do action
if (mysql_num_rows($check_result) < 1) { //print failure message $display_block = "<P>Couldn't find your address!</P> <P>No action was taken.</P>"; } else { //unsubscribe the address $id = mysql_result($check_result, 0, "id"); $sql = "delete from kemails where id = '$id'"; $result = mysql_query($sql,$conn) or die(mysql_error()); $display_block = "<P>You're unsubscribed!</p>"; } } ?> <HTML> <HEAD> <TITLE>Subscribe/Unsubscribe K-EMAILS</TITLE> </HEAD> <BODY> <h1>Subscribe/Unsubscribe J&K-EMAILS</h1> <a href="">Back</a> <?php echo "$display_block"; ?> </BODY> </HTML> -----------------------------------------------------------------------------------------
kselect.php page which processes the subscribe and unsubscribe
--------------------------------------------------------------------------------
<?php
// open the connection $conn = mysql_connect("localhost", "", ""); // pick the database to use
mysql_select_db("b",$conn); // create the SQL statement
$sql = "SELECT * FROM kemails"; // execute the SQL statement
$result = mysql_query($sql, $conn) or die(mysql_error()); //go through each row in the result set and display data
while ($newArray = mysql_fetch_array($result)) { // give a name to the fields $id = $newArray['id']; $email = $newArray['email']; //echo the results onscreen between ""can also //type$id is and &email is echo " $email <br>"; } ?> --------------------------------------------------------------------------------------------
mysql table structure
kemails
mysql> describe kemails
-> ; +-------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+--------------+------+-----+---------+-------+ | id | int(11) | | PRI | 0 | | | email | varchar(150) | | PRI | | | +-------+--------------+------+-----+---------+-------+ 2 rows in set (0.00 sec) |
- Re: [PHP-INSTALL] PHP MYSQL Remember14a
- Re: [PHP-INSTALL] PHP MYSQL Chris Hewitt