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变量不正确:WHEREemail
=“$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";
}
?>