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)

Reply via email to