Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.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 嵌套的mysqli_查询不会返回任何结果_Php_Mysql_Arrays_Mysqli - Fatal编程技术网

Php 嵌套的mysqli_查询不会返回任何结果

Php 嵌套的mysqli_查询不会返回任何结果,php,mysql,arrays,mysqli,Php,Mysql,Arrays,Mysqli,在下面的代码中,我需要回显子查询的结果。 当我回显“$row['email']”时。”回音正常,我收到了所有的电子邮件 问题是: $resultsub.echo $rowb["email"]; 是空的 问题:我在子查询:$resultsub中做错了什么 $result = mysqli_query($conn, "SELECT * FROM wp_mm_email_bounces"); if ($result) { // output data of each row while( $row

在下面的代码中,我需要回显子查询的结果。 当我回显“
$row['email']”时。
回音正常,我收到了所有的电子邮件

问题是:

$resultsub.echo $rowb["email"];
是空的

问题:我在子查询:$resultsub中做错了什么

$result = mysqli_query($conn, "SELECT * FROM wp_mm_email_bounces");

if ($result) {
// output data of each row
while( $row = mysqli_fetch_assoc( $result ) )
        {
            echo $row['email'].'<br>'; // echo works okay
            $resultsub =  mysqli_query($conn, "SELECT * FROM `wp_mm_external_emails` WHERE `email` = '". $row['email'] ."' "); 
            // when I echo this subquery it runs ok. but somehow I get an empty
            while( $rowb = mysqli_fetch_assoc( $resultsub) )
            {
                echo $rowb["email"];
        } else {
            echo "0 $resultsub";
            }
} else {
echo "0 results";
}
$result=mysqli\u query($conn,“从wp\u mm\u电子邮件中选择*);
如果($结果){
//每行的输出数据
while($row=mysqli\u fetch\u assoc($result))
{
echo$row['email'].
;//echo工作正常 $resultsub=mysqli_query($conn,“从'wp_mm_external_emails'中选择*,其中'email`='”。$row['email'.“”); //当我回显这个子查询时,它运行正常。但不知怎的,我得到了一个空的 while($rowb=mysqli_fetch_assoc($resultsub)) { echo$rowb[“电子邮件”]; }否则{ 回显“0$resultsb”; } }否则{ 回显“0结果”; }
为什么不使用内部联接查询

请参见下面的示例:

$sqlString = "SELECT ebounces.email as bouces_email, ext.email as ext_email FROM wp_mm_email_bounces ebouces INNER JOIN wp_mm_external_emails ext ON ebounces.email = ext.email";
$result = mysqli_query($conn, $sqlString);

if ($result) {
    // output data of each row
    while( $row = mysqli_fetch_assoc( $result ) )
    {
        echo $row['bouces_email'].'<br>'; 
        echo $row["ext_email"];
    }
} 
else {
    echo "0 results";
}
$sqlString=“选择ebounces.email作为bouces\u email,选择ext.email作为ext\u email从wp\u mm\u email\u反弹ebounces内部加入wp\u mm\u外部电子邮件ext ON ebounces.email=ext.email”;
$result=mysqli_查询($conn,$sqlString);
如果($结果){
//每行的输出数据
while($row=mysqli\u fetch\u assoc($result))
{
echo$row['bouces_email']。
; echo$行[“外部电子邮件”]; } } 否则{ 回显“0结果”; }
另外,将您需要的所有列放入SQL语句中


我的最爱

我想你在
分手时把你的
if-else
搞砸了。如果我“漂亮地打印”你上面的代码片段,它看起来像这样(见我的评论):


在数据库管理器(即phpmyadmin)中执行resultsub查询时,您会得到什么?手动填写$row['email']时,我会得到所有信息。但在这个脚本中,$resultsub始终为空。我的想法是:-$resultsub=mysqli_查询($conn不正确(不知道为什么不正确)—email变量不正确:WHERE
email
=“$row['email]”“”);我用echo测试脚本,但需要它来删除。我需要的不是echo$rowb[“email”];而是:$conn->query(“从wp_mm_外部_电子邮件中删除,其中email=”“$email”。”);从表中删除所有已跳转的电子邮件地址。@Hermants,这听起来像是一个新问题。这不属于注释中。如果此答案是根据
echo
指定问题的正确答案(而不是
中删除),然后请接受它。你可以问一个新问题,并考虑立即询问你真正需要什么。好吧,尝试使用使用内部联接的DELETE,如下面的示例。$sqlString=“DELETE s.*FROM wp_mm_external_emails的内部联接wp_mm_email_在s.email=n.email上反弹n”$result=mysqli_查询($conn,$sqlString);我的最佳答案我不知道我必须如此明确地描述它。我将开始一个新的线程。尝试使用最后一个示例。
<?php
$result = mysqli_query($conn, "SELECT * FROM wp_mm_email_bounces");

if ($result) 
{
    while( $row = mysqli_fetch_assoc( $result ) )
    {
        echo $row['email'].'<br>';
        $resultsub =  mysqli_query($conn, "SELECT * FROM `wp_mm_external_emails` WHERE `email` = '". $row['email'] ."' "); 

        while( $rowb = mysqli_fetch_assoc( $resultsub) )
        {
            echo $rowb["email"];
        } 
        else //Where is the corresponding if?
        {
            echo "0 $resultsub";
        }
    }
} //I added this enclosing bracket to the if-statement

else //If this is the corresponding else of your first if at the beginning, then you never closed it
{
    echo "0 results";
}

?>