在mysql表上使用for循环


using for loop on mysql table

我的数据库上有两个表:cat(id,catname)链接(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();

有没有一种方法可以从表cat中获得id,并使用它来循环遍历表link中的数据?感谢

循环中不需要那么多请求。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();