代码之家  ›  专栏  ›  技术社区  ›  k_turek

php和mysql上的内部连接和foreach循环

  •  1
  • k_turek  · 技术社区  · 6 年前

    我对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()提供的参数无效。 我将在没有“内部连接”的查询中添加该选项,一切正常…

    有人知道吗? 拜托。。。

    2 回复  |  直到 6 年前
        1
  •  2
  •   Eric M. Johnson    6 年前

    foreach 像这样失败如果 $toner 为空。内部联接不返回行。你需要逻辑来处理这个案子。见 this question 有关此错误的详细信息。

        2
  •  0
  •   Kamil Czubak    6 年前

    首先,尝试在服务器(如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
    }