Looping in PHP with the Mail Command

Discussion in 'PHP' started by nickharper, Feb 23, 2010.

  1. #1
    Hi Guys,

    I am trying to do a loop so it sends an email to various people from a mySQL database. It seems to only send the first one, rather than all :(

    Here is my code:


    <?php mysql_select_db($database_CPA_Rewards, $CPA_Rewards);
    $query_Points = "SELECT * FROM members WHERE points > '10' ORDER BY points asc";
    $Points = mysql_query($query_Points, $CPA_Rewards) or die(mysql_error());
    $row_Points = mysql_fetch_assoc($Points);
    $totalRows_Points = mysql_num_rows($Points); ?>
    
    <?php
    
    echo "<ul>";
    do {
    echo '<li>'.$row_Points['username'].' has been emailed!</li>';
     // Member email address
        $header .= "Return-Path: My Site <myemail@email.com>\r\n"; 
        $header .= "From: My Site <myemail@email.com>\r\n"; 
        $header .= "Organization: My Organization\r\n"; 
        $header .= "Content-Type: text/plain\r\n"; 
    	
    $memberemail = "myemail@email.com"; (For Testing)
    // The subject
    $membersubject = "{$row_Points['username']}, Reminder!";
    // The message
    $membermessage = "Hi {$row_Points['username']}";
    
    mail($memberemail, $membersubject, $membermessage, $header); 
    } while ($row_Points = mysql_fetch_assoc($Points));
    echo "</ul>"; 
    mysql_free_result($Points);
    ?>
    
    PHP:
     
    nickharper, Feb 23, 2010 IP
  2. crivion

    crivion Notable Member

    Messages:
    1,669
    Likes Received:
    45
    Best Answers:
    0
    Trophy Points:
    210
    Digital Goods:
    3
    #2
    yes you need to do a while($row_Points = mysql_fetch_assoc($Points)) { script actions }
     
    crivion, Feb 23, 2010 IP
  3. danx10

    danx10 Peon

    Messages:
    1,179
    Likes Received:
    44
    Best Answers:
    2
    Trophy Points:
    0
    #3
    <?php 
    mysql_select_db($database_CPA_Rewards, $CPA_Rewards);
    $query_Points = "SELECT * FROM members WHERE points > '10' ORDER BY points asc";
    $Points = mysql_query($query_Points, $CPA_Rewards) or die(mysql_error());
    while($row_Points = mysql_fetch_assoc($Points)){
    $totalRows_Points = mysql_num_rows($Points); 
    
    echo "<ul>";
    
    echo '<li>'.$row_Points['username'].' has been emailed!</li>';
     // Member email address
        $header .= "Return-Path: My Site <myemail@email.com>\r\n";
        $header .= "From: My Site <myemail@email.com>\r\n";
        $header .= "Organization: My Organization\r\n";
        $header .= "Content-Type: text/plain\r\n";
       
    $memberemail = "myemail@email.com"; /*(For Testing)*/
    // The subject
    $membersubject = "{$row_Points['username']}, Reminder!";
    // The message
    $membermessage = "Hi {$row_Points['username']}";
    
    mail($memberemail, $membersubject, $membermessage, $header);
    
    echo "</ul>"; 
    }
    
    ?>
    PHP:
     
    danx10, Feb 23, 2010 IP