我有这个小逻辑,我不知道如何解决它。

我在名为email_list的5个数据库中拥有此记录

然后我就在此trackCode 15条记录上。

我的问题是我在做某些事情,例如当我单击email all时,它将把电子邮件发送到具有5条记录的email_list,然后trackCode会将其发送到那些电子邮件中。

我有这个代码

$sql = mysql_query( "SELECT * FROM code WHERE track = '$_POST['track']' " ) or die ( mysql_error() );
$row = mysql_fetch_array( $sql );
$subject = 'You have received your code';
$message = '
Your code is '.$row['trackCode'].'

Please click here to activate your code - click here -

management
';

$header = "From: [email protected] \r\n";
$header .= 'Content-type: text/html' . "\r\n";

$sqlemail = mysql_query( "SELECT * FROM email_list ORDER BY rand() LIMIT 15" ) or die ( mysql_error() );
while ( $rowemail = mysql_fetch_array( $sqlemail ) ) {
  $to = $rowemail['emails'];
}
$send_contact = mail($to,$subject,$message,$header);


您能告诉我我的代码有什么问题吗,是我的while语句吗?

我要解决的问题是,当它发送电子邮件时,会发送到具有不同trackCodes的那5封电子邮件中

我认为我迷失了自己的流程和逻辑。

谢谢你们

最佳答案

尝试将其更改为:

$sqlemail = mysql_query("SELECT * FROM email_list ORDER BY rand() LIMIT 15") or die ( mysql_error());

while($rowemail = mysql_fetch_assoc($sqlemail))
{
    mail($rowemail['emails'], $subject, $message, $header);
}


还有这个:

$sql = mysql_query("SELECT * FROM code WHERE track = '$_POST['track']'") or die (mysql_error());


应该:

$sql = mysql_query("SELECT * FROM code WHERE track = '".mysql_real_escape_string($_POST['track'])."'") or die (mysql_error());


重要:


  但是,必须指出的是,
  不推荐使用mysql扩展名。相反,MySQLi
  应该使用PDO_MySQL扩展名。

关于php - PHP mysql选择rand()行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12129643/

10-15 12:47