Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 向电子邮件地址来自Mysql的不同用户发送邮件_Php_Mysql_Mysqli - Fatal编程技术网

Php 向电子邮件地址来自Mysql的不同用户发送邮件

Php 向电子邮件地址来自Mysql的不同用户发送邮件,php,mysql,mysqli,Php,Mysql,Mysqli,我想从具有条件的表中获取所有行,然后向指定的用户发送电子邮件。表中有2个用户。如果我在sql语句中放入sql语句,它将不起作用,只有第一个用户才能收到邮件。我相信这很容易,但我是php和mysql的初学者,所以请帮助我 表中有2个用户 <?php require'../includes/database.php'; $sql = "SELECT * FROM users"; $result = $conn->query($sql); if ($result-&

我想从具有条件的表中获取所有行,然后向指定的用户发送电子邮件。表中有2个用户。如果我在sql语句中放入sql语句,它将不起作用,只有第一个用户才能收到邮件。我相信这很容易,但我是php和mysql的初学者,所以请帮助我

表中有2个用户

<?php 
require'../includes/database.php'; 

    $sql = "SELECT * FROM users";  
$result = $conn->query($sql);  

if ($result->num_rows > 0) {  

    // output data of each row  
    while($row = $result->fetch_assoc()) {  
        $fname = $row["fname"];  
        $nname = $row["lname"];  
        $mailadresse = $row["email"];  
        $user2 = $fname." ".$nname;  
        echo $user2;  

        $sql = "SELECT * FROM iks_open, users WHERE Datum <= '$neudate' AND  pverantwortung = '$user2'";  
        $result = $conn->query($sql);  

        if ($result->num_rows > 0) {  
            $mailhost       = "$server";  //SMTP Host name  
            $mailsmtpauth   = true;  
            $mailusername   = "$user"; // SMTP Login  
            $mailpassword   = "$pass"; // SMTP Password  


            require_once('../includes/Mailer/class.phpmailer.php');  
            require_once('../includes/Mailer/class.smtp.php');  


            $mail = new PHPMailer();   

            $mail->IsSMTP();
            $mail->Host       = $mailhost;  
            $mail->Port       = $port;  
            $mail->SMTPDebug  = 1; // Kann man zu debug Zwecken aktivieren  
            $mail->SMTPAuth   = true;  
            $mail->Username   = $mailusername;  
            $mail->Password   = $mailpassword;  
            $mail->SMTPSecure = $sec;  


            $frommail = "$email";  
            $mail->SetFrom($frommail, 'IKS-System');  

            $address = "$mailadresse";  
            $mail->AddAddress($address);  

            $mail->Subject = "Offene IKS-Aufgaben";  
            $mail->Body = "Sie haben offene Aufgaben. Bitte einloggen und erledigen";  

            if(!$mail->Send()) {  

            $lcontact = 1;  
            } else {  
            $lcontact = 2;  

            }  

            }else {  
                echo "Alles gut";  
            }  

    }  
}  


?>  

您正在覆盖while语句中的$result变量。小心处理您的变量,您不会遇到这样的麻烦。

您正在覆盖while语句中的$result变量。小心你的变量,你不会有这样的麻烦。

我认为,在while循环中发生的数据库获取正在覆盖$result对象

试试这个

<?php 
require'../includes/database.php'; 

$sql = "SELECT * FROM users";  
$result = $conn->query($sql);  

if ($result->num_rows > 0) {  

// output data of each row  
while($row = $result->fetch_assoc()) {  
    $fname = $row["fname"];  
    $nname = $row["lname"];  
    $mailadresse = $row["email"];  
    $user2 = $fname." ".$nname;  
    echo $user2;  

    $query = "SELECT * FROM iks_open, users WHERE Datum <= '$neudate' AND  pverantwortung = '$user2'";  
    $details = $conn->query($sql);  

    if ($details->num_rows > 0) {  
        $mailhost       = "$server";  //SMTP Host name  
        $mailsmtpauth   = true;  
        $mailusername   = "$user"; // SMTP Login  
        $mailpassword   = "$pass"; // SMTP Password  


        require_once('../includes/Mailer/class.phpmailer.php');  
        require_once('../includes/Mailer/class.smtp.php');  


        $mail = new PHPMailer();   

        $mail->IsSMTP();
        $mail->Host       = $mailhost;  
        $mail->Port       = $port;  
        $mail->SMTPDebug  = 1; // Kann man zu debug Zwecken aktivieren  
        $mail->SMTPAuth   = true;  
        $mail->Username   = $mailusername;  
        $mail->Password   = $mailpassword;  
        $mail->SMTPSecure = $sec;  


        $frommail = "$email";  
        $mail->SetFrom($frommail, 'IKS-System');  

        $address = "$mailadresse";  
        $mail->AddAddress($address);  

        $mail->Subject = "Offene IKS-Aufgaben";  
        $mail->Body = "Sie haben offene Aufgaben. Bitte einloggen und erledigen";  

        if(!$mail->Send()) {  

        $lcontact = 1;  
        } else {  
        $lcontact = 2;  

        }  

        }else {  
            echo "Alles gut";  
        }  

}  

我认为,在while循环中发生的数据库获取正在覆盖$result对象

试试这个

<?php 
require'../includes/database.php'; 

$sql = "SELECT * FROM users";  
$result = $conn->query($sql);  

if ($result->num_rows > 0) {  

// output data of each row  
while($row = $result->fetch_assoc()) {  
    $fname = $row["fname"];  
    $nname = $row["lname"];  
    $mailadresse = $row["email"];  
    $user2 = $fname." ".$nname;  
    echo $user2;  

    $query = "SELECT * FROM iks_open, users WHERE Datum <= '$neudate' AND  pverantwortung = '$user2'";  
    $details = $conn->query($sql);  

    if ($details->num_rows > 0) {  
        $mailhost       = "$server";  //SMTP Host name  
        $mailsmtpauth   = true;  
        $mailusername   = "$user"; // SMTP Login  
        $mailpassword   = "$pass"; // SMTP Password  


        require_once('../includes/Mailer/class.phpmailer.php');  
        require_once('../includes/Mailer/class.smtp.php');  


        $mail = new PHPMailer();   

        $mail->IsSMTP();
        $mail->Host       = $mailhost;  
        $mail->Port       = $port;  
        $mail->SMTPDebug  = 1; // Kann man zu debug Zwecken aktivieren  
        $mail->SMTPAuth   = true;  
        $mail->Username   = $mailusername;  
        $mail->Password   = $mailpassword;  
        $mail->SMTPSecure = $sec;  


        $frommail = "$email";  
        $mail->SetFrom($frommail, 'IKS-System');  

        $address = "$mailadresse";  
        $mail->AddAddress($address);  

        $mail->Subject = "Offene IKS-Aufgaben";  
        $mail->Body = "Sie haben offene Aufgaben. Bitte einloggen und erledigen";  

        if(!$mail->Send()) {  

        $lcontact = 1;  
        } else {  
        $lcontact = 2;  

        }  

        }else {  
            echo "Alles gut";  
        }  

}  

如果您检测到问题源,请尝试给出一个snnipet代码解决方案。这对手术来说很容易。是的,你是对的,但没有必要这样做。这不是逻辑问题。他必须重新命名他的变量。我想他不用举例就可以做到。无论如何,在看到你的答案之前,我已经为他准备好了。如果你发现了问题的根源,试着给出一个简单的代码解决方案。这对手术来说很容易。是的,你是对的,但没有必要这样做。这不是逻辑问题。他必须重新命名他的变量。我想他可以不用一个例子就做到。无论如何,在看到你的答案之前,我已经为他准备好了。