PHP遍历每一行
我试图显示数据库中每一行的信息。我有多行信息,我将使用这些信息输出到我的页面 我的桌子是这样的:PHP遍历每一行,php,mysql,database,mysqli,Php,Mysql,Database,Mysqli,我试图显示数据库中每一行的信息。我有多行信息,我将使用这些信息输出到我的页面 我的桌子是这样的: id | collection | name | image ------------------------------- 1 | Col One |col-1 | url-1 ------------------------------- 2 | Col Two |col-2 | url-2 $sql = "SELECT * FROM collections"; $result
id | collection | name | image
-------------------------------
1 | Col One |col-1 | url-1
-------------------------------
2 | Col Two |col-2 | url-2
$sql = "SELECT * FROM collections";
$result = $link->query($sql);
$collections = mysqli_fetch_array($result, MYSQLI_BOTH);
$html = '<div class="collection" id="' . $collections["name"] . '"><div class="collection-hover">' . $collections["collection"] . '</div></div>';
echo '<div id="collectionsDiv">';
while ($row = $result->fetch_assoc()) {
echo $html;
}
echo '</div>';
下面是我的代码当前的样子:
id | collection | name | image
-------------------------------
1 | Col One |col-1 | url-1
-------------------------------
2 | Col Two |col-2 | url-2
$sql = "SELECT * FROM collections";
$result = $link->query($sql);
$collections = mysqli_fetch_array($result, MYSQLI_BOTH);
$html = '<div class="collection" id="' . $collections["name"] . '"><div class="collection-hover">' . $collections["collection"] . '</div></div>';
echo '<div id="collectionsDiv">';
while ($row = $result->fetch_assoc()) {
echo $html;
}
echo '</div>';
答案如下:
&
&
前两个只返回最后一行,而最后一行不起作用(我想MySqlResult可能已经贬值了。我试着用mysqli_result代替它,但它也不起作用)
我不确定我遗漏了什么
如果我使用mysqli_fetch_all,我如何获得每个项目的所有信息?有更好的方法吗?也许我也可以在$html变量中传递fetch_all数组ID,但我也不确定该怎么做
我对PHP非常陌生,所以如果这真的很简单,请原谅我 使用获取循环中的行。在循环中使用此函数返回的变量:
<?php
if (! $r = $link->query("SELECT * FROM collections")) {
// handle error
}
echo '<div id="collectionsDiv">';
while ($row = $r->fetch_assoc()) {
echo <<<EOS
<div class="collection" id="{$row['id']}">
<div class="collection-hover">{$row['collection']}</div>
</div>
EOS
}
echo '</div>';
$r->free();
$ALLDATA
现在将拥有所有数据,您可以根据需要使用它。@Ruslan的答案非常好。mysqli版本将是:
$sql = "SELECT * FROM collections";
$result=mysqli_query($link,$sql);
echo '<div id="collectionsDiv">';
while($row=mysqli_fetch_assoc($result)){
echo <<<EOS
<div class="collection" id="{$row["id"]}">
<div class="collection-hover">{$row["collection"]}</div>
</div>
EOS
}
echo '</div>';
$sql=“从集合中选择*”;
$result=mysqli\u查询($link,$sql);
回声';
while($row=mysqli\u fetch\u assoc($result)){
回显关于这一点的混乱,只需在第一个while
块上获取整个结果,它将持续移动指针直到最后一行。如果在fetch
块上调用另一个,它将只会导致null
,在fetch
块时不需要多个,并且不使用st光线fetch_array
在块之外,或者先将其放入容器(数组)中,将所有值放在那里,然后将该数组重用到代码的各个部分。我一次只运行一个while块。我没有特别说明这一点,但我测试了一个while块,其余的都被注释掉了。我尝试的每个while块只给出一个结果。这太神奇了,非常感谢。它按照它应该的方式工作,而且,是c当然,我只是把事情复杂化了。