在mysql表上使用for循环

时间:2015-03-30 20:13:25

标签: php mysql mysqli

我的数据库上有2个表: 猫(id,catname) link(id,name,url,cat)

我想循环遍历表link并按cat输出数据,这里是实际的代码,但ID无论如何都不起作用:)

    for ($i = 1; ; $i++)
    {
        $list = $mysqli->query('SELECT * FROM links WHERE category='$i'');
        while($row = $list->fetch_assoc()) {
            print $row["category"];
            print $row["name"].' ';
            print $row["url"];
            print '<br>';
        }
    }

    $list->free();

我们是否有办法从表id获取cat并使用它来遍历表link中的数据? 感谢

1 个答案:

答案 0 :(得分:0)

循环中不需要这么多请求。在这种情况下,SQL中有JOIN语句:

$result = $mysqli->query('SELECT category.name AS cat_name, 
                               links.name,
                               links.url 
                          FROM category 
                          INNER JOIN links ON links.cat=category.id');

while($row = $result->fetch_assoc()) {
    print $row["cat_name"];
    print $row["name"].' ';
    print $row["url"];
    print '<br>';
}

$result->close();