Dear Friends, I have a table in mysql database, which retains emails, 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=\"$_SERVER[PHP_SELF]\"> <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="kemails.php">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)