php和mysql上的内部JOIN和foreach循环

php和mysql上的内部JOIN和foreach循环,php,html,mysql,Php,Html,Mysql,我对php上的foreach循环和内部连接有问题。 我有两张桌子:墨粉和打印机。和代码: $toner = $this->_db->execute('SELECT TONERS.NAME, PRINTERS.NAME, TONERS.CONTRACTORS FROM TONERS INNER JOIN PRINTERS ON TONERS.ID_PRINTERS=PRINTERS.ID;') foreach ($toner as $toners) { //he

我对php上的foreach循环和内部连接有问题。 我有两张桌子:墨粉和打印机。和代码:

$toner = $this->_db->execute('SELECT TONERS.NAME, PRINTERS.NAME, TONERS.CONTRACTORS FROM TONERS INNER JOIN PRINTERS ON TONERS.ID_PRINTERS=PRINTERS.ID;')
foreach ($toner as $toners) {
            //here is the html table with results
} 
接收到错误:警告:为foreach()提供的参数无效。 我会在没有“内部联接”的查询中添加这一点,一切正常

有人有主意吗?
请…

如果
$toner
为空,则foreach
会像这样失败。内部联接不返回任何行。你需要逻辑来处理这个案子。有关此错误的详细信息,请参阅。

首先,尝试在服务器上运行此查询(如在PHPMyAdmin中),并检查是否有一些记录可填充foreach循环中使用的变量。此错误显示您的
$toner
var为空

然后尝试从查询中获取数据

$sql = "SELECT TONERS.NAME, PRINTERS.NAME, TONERS.CONTRACTORS FROM TONERS INNER JOIN PRINTERS ON TONERS.ID_PRINTERS=PRINTERS.ID;";
$result = $conn->query($sql);
while($row = $result->fetch_assoc()) {
     //do your magic
}

显然,查询返回的行数小于或等于一行