Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.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中将$row[$variable]与LEFT JOIN一起使用时,结果为空_Php_Mysql_Sql - Fatal编程技术网

在PHP中将$row[$variable]与LEFT JOIN一起使用时,结果为空

在PHP中将$row[$variable]与LEFT JOIN一起使用时,结果为空,php,mysql,sql,Php,Mysql,Sql,首先,我想说,这是我在stack的第一个问题,如果这个问题以前有人回答过,我提前表示歉意,但是到目前为止,我无法找到答案,也无法自己解决 我试图在php文件中使用SELECT函数来运行基本报告。我在PHPMyAdmin中编写了SQL,并使用convert to php按钮来实现这一点。我得到的是: SELECT l.id AS 'ID', l.type AS 'Type', l.state AS 'State', l.won_at AS 'Won', l.lost_at AS 'Lost', l

首先,我想说,这是我在stack的第一个问题,如果这个问题以前有人回答过,我提前表示歉意,但是到目前为止,我无法找到答案,也无法自己解决

我试图在php文件中使用SELECT函数来运行基本报告。我在PHPMyAdmin中编写了SQL,并使用convert to php按钮来实现这一点。我得到的是:

SELECT
l.id AS 'ID',
l.type AS 'Type',
l.state AS 'State',
l.won_at AS 'Won',
l.lost_at AS 'Lost',
l.cancelled_at AS 'Cancelled',
l.created_at AS 'Created',
l.source AS 'Source',
u.first_name AS 'Owner First Name',
u.last_name AS 'Owner Last Name'
FROM `leads` AS l
LEFT JOIN `users` AS u ON
(u.`id` = l.`owner_id`)
LEFT JOIN `regions` AS rg ON
(rg.`id` = l.`region`)
WHERE l.`state` IS NOT NULL
[...]";
当我将其放入PHP文档时,它看起来如下所示:

    <?php
// Create connection
$con=mysqli_connect("localhost","root","pass","database");

// Check connection
if (mysqli_connect_errno($con))
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

// And now for the good stuff

$result = mysqli_query($con,"SELECT
l.id AS 'LeadID',
l.type AS 'Type',
l.state AS 'State',
l.won_at AS 'Won',
l.lost_at AS 'Lost',
l.cancelled_at AS 'Cancelled',
l.created_at AS 'Created',
l.source AS 'Source',
u.first_name AS 'First Name',
u.last_name AS 'Last Name'
FROM `leads` AS l
LEFT JOIN `users` AS u ON
(u.`id` = l.`owner_id`)
WHERE l.`state` IS NOT NULL
");

echo "<table border='1'>
<tr>
<th>Test1</th>
<th>Test2</th>
</tr>";

while($row = mysqli_fetch_array($result))
  {
  echo "<tr>";
  echo "<td>" . $row["$LeadID"] . "</td>";
  echo "<td>" . $row["$l.type"] . "</td>";
  echo "</tr>";
  }
echo "</table>";

mysqli_close($con);
?>
$rows = mysqli_fetch_array($result);
foreach ($rows as $value)
{
  echo "<tr>";
  echo "<td>" . $value["LeadID"] . "</td>";
  echo "<td>" . $value["Type"] . "</td>";
  echo "</tr>";
}
echo "</table>";
使用:

echo”“$行[“LeadID”]。"";
“回声”$行[“类型”]。"";

您不需要
$
,这些只是文本字符串,不是变量的值。而且键区分大小写,因此您必须使用
类型
,而不是
类型
,我认为最好使用foreach,而不是像这样:

    <?php
// Create connection
$con=mysqli_connect("localhost","root","pass","database");

// Check connection
if (mysqli_connect_errno($con))
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

// And now for the good stuff

$result = mysqli_query($con,"SELECT
l.id AS 'LeadID',
l.type AS 'Type',
l.state AS 'State',
l.won_at AS 'Won',
l.lost_at AS 'Lost',
l.cancelled_at AS 'Cancelled',
l.created_at AS 'Created',
l.source AS 'Source',
u.first_name AS 'First Name',
u.last_name AS 'Last Name'
FROM `leads` AS l
LEFT JOIN `users` AS u ON
(u.`id` = l.`owner_id`)
WHERE l.`state` IS NOT NULL
");

echo "<table border='1'>
<tr>
<th>Test1</th>
<th>Test2</th>
</tr>";

while($row = mysqli_fetch_array($result))
  {
  echo "<tr>";
  echo "<td>" . $row["$LeadID"] . "</td>";
  echo "<td>" . $row["$l.type"] . "</td>";
  echo "</tr>";
  }
echo "</table>";

mysqli_close($con);
?>
$rows = mysqli_fetch_array($result);
foreach ($rows as $value)
{
  echo "<tr>";
  echo "<td>" . $value["LeadID"] . "</td>";
  echo "<td>" . $value["Type"] . "</td>";
  echo "</tr>";
}
echo "</table>";
$rows=mysqli\u fetch\u数组($result);
foreach(行作为$value)
{
回声“;
回显“$value[“LeadID”]”;
回显“$value[”类型“]”;
回声“;
}
回声“;

您需要
$row['LeadID']
,我想它的
$row['LeadID']
$row['Type']
已经成功了,谢谢您的帮助。现在让我试着让自己感觉不那么愚蠢…投反对票是为了什么?可能是因为我忽略了这么一个小细节,有人认为这不是一个合适的问题。一天结束时,不管我问了什么,我都能从那些仅仅因为喜欢帮助别人而愿意这么做的人那里得到快速的帮助。从第一个被问到的问题来看,这是一次很棒的经历。棒极了,效果非常好。我以前曾四处寻找过另一个答案,但只找到了准相关的东西,可能是因为我忽略了这个公认的相当简单的部分。谢谢你的提示!您想到的是
mysqli\u fetch\u all()
mysqli\u fetch\u array()
只返回一行,您的
foreach
将在列上循环。但你为什么认为foreach更好?这意味着您必须用所有结果填充内存,而不是一次只填充一行。