我在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()提供了无效的参数。 我会在没有'Inner join'的查询中添加所有内容,一切正常...
有人知道吗? 拜托...
答案 0 :(得分:2)
foreach
为null,则 $toner
会失败。内部联接不返回任何行。您需要逻辑来处理这种情况。有关此错误的更多信息,请参见this question。
答案 1 :(得分:0)
首先,尝试在服务器上运行此查询(例如在PHPMyAdmin中),并检查是否有一些记录可填充变量,该记录在foreach循环中使用。此错误表明您的$toner
变量为空。
然后尝试从查询中获取数据
$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
}