www.webdeveloper.com
Results 1 to 4 of 4

Thread: How to send mysql data to email after submitting the form?

  1. #1
    Join Date
    Jan 2013
    Posts
    3

    How to send mysql data to email after submitting the form?

    After customer filling the form, the form data will be send to mysql, and an email will sent to me with the last form data that customer submitted. All is working, but only the problem is in the email "last mysql data" is not going as inline text. So, how to do this? I am doing in PHP. In am new in PHP. Please help me.
    Sample code is given below.

    Code:
    <?php
    
    define('DB_NAME', 'sandi565_form11');
    define('DB_USER', 'XXXXXXX');
    define('DB_PASSWORD', 'XXXXXXX');
    define('DB_HOST', 'localhost');
    
    $link = mysql_connect (DB_HOST, DB_USER, DB_PASSWORD);
    
    if (!$link) {
    	die('Could not connect: ' . mysql_error());
    }
    
    $db_selected = mysql_select_db(DB_NAME, $link);
    
    if (!$db_selected) {
    	die('Can\'t use ' . DB_NAME . ': ' . mysql_error());
    }
    
    //Start Posting the data in Mysql database from Form Input
    
    $value = $_POST['input1'];
    $value2 = $_POST['MAmount'];
    
    $sql = "INSERT INTO demo (input1, MAmount) VALUES ('$value', '$value2')";
    
    if (!mysql_query($sql)) {
    	die('Error: ' . mysql_error());
    	
    }
    
    //start print the database
    
    $data = mysql_query("SELECT * FROM demo ORDER BY ID DESC LIMIT 1")
     or die(mysql_error()); 
     Print "<table border cellpadding=3>"; 
     while($info = mysql_fetch_array( $data )) 
     { 
     Print "<tr>"; 
     Print "<th>ID:</th> <td>".$info['ID'] . "</td> "; 
     Print "<th>Input1:</th> <td>".$info['input1'] . "</td> "; 
     Print "<th>MAmount:</th> <td>".$info['MAmount'] . " </td></tr>"; 
     } 
     Print "</table>"; 
    
    mysql_close();
    
      
    //end print the database on form processing page
      
    //start emailing the data
      
    
    date_default_timezone_set('Asia/Kolkata');
    
    require_once('class.phpmailer.php');
    //include("class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded
    
    $mail             = new PHPMailer();
    
    //$body             = "gdssdh";
    //$body             = preg_replace("[\]",'',$body);
    
    $mail->IsSMTP(); // telling the class to use SMTP
    $mail->Host       = "ssl://XXXXXXX.XXXXXXX.org"; // SMTP server
    $mail->SMTPDebug  = 1;                     // enables SMTP debug information (for testing)
                                               // 1 = errors and messages
                                               // 2 = messages only
    $mail->SMTPAuth   = true;                  // enable SMTP authentication
    $mail->SMTPSecure = "ssl";                 // sets the prefix to the servier
    $mail->Host       = "XXXXXXX.XXXXXXX.org";      // sets GMAIL as the SMTP server
    $mail->Port       = 465;                   // set the SMTP port for the GMAIL server
    $mail->Username   = "contact@XXXXXXX.com";  // GMAIL username
    $mail->Password   = "XXXXXXX";            // GMAIL password
    
    $mail->SetFrom('contact@XXXXXXXX.com', 'HAL');
    
    //$mail->AddReplyTo("user2@gmail.com', 'First Last");
    
    $mail->Subject    = "Halmira 469";
    
    //THE PROBLEM IS HERE WHEN I WANT TO SEND THE DATA AS INLINE TEXT TO EMAIL FROM MYSQL IT IS NOT WORKING. ONLY "PRINT THE DATA" IS SENDING TO EMAIL.
    
    $body                = 'Print the data';
    mysql_connect("localhost","XXXXXXX","XXXXXXX");
    @mysql_select_db("sandi565_form11");
    $query["SELECT * FROM demo ORDER BY ID DESC LIMIT 1"];
    $result = mysql_query($query);
    
    //while ($row = mysql_fetch_array ($result)) {
    //  $mail->AltBody    = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test
      $mail->MsgHTML($body);
      $address = "XXXXXXX@gmail.com";
      $mail->AddAddress($address, "user2");
    
    //$mail->AddAttachment("images/phpmailer.gif");      // attachment
    //$mail->AddAttachment("images/phpmailer_mini.gif"); // attachment
    
    if(!$mail->Send()) {
      echo "Mailer Error: " . $mail->ErrorInfo;
    } else {
      echo "Message sent!";
    }
    
    ?>

  2. #2
    Join Date
    May 2006
    Location
    the netherlands
    Posts
    454
    simply retrieve the contents of the database first and put it in a variable. echo it to the screen to make sure the variable contains the right data (temporarily as a check) and then assign that variable to your $body variable.

  3. #3
    Join Date
    Jan 2013
    Posts
    3

    Question

    Can you please show me this by writing the code? That it is how to retrieve, put variable, echo in the screen and then put in the body. Also I have written some code, please see above.

  4. #4
    Join Date
    May 2006
    Location
    the netherlands
    Posts
    454
    I don't mind to help out when you're stuck at a particular point, but i don't feel much like generating all the code for you. There's only three simple steps you need to take:
    1. write a sql statement that selects the right data from the database
    2. write the php code that executes this statement and saves the result in a variable
    3. assign this variable to your already existing $body variable

    that's it.

    put this code directly above
    PHP Code:
    require_once('class.phpmailer.php'); 
    for example and it should work

    why don't you give it a try how far you get and post the result here if you get stuck

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center



Recent Articles