我试图显示数据库中每一行的信息。我有多行信息,我将用它来输出到我的页面。
这是我的表格的样子:
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>';
我的代码目前只将第一行放入$ collection变量中,并且它正确地回显了第一行的所有内容。但是,我需要每行打印到页面。我找到了mysqli_fetch_all,当我做var_dump时,我得到了所有的行。但是,我的while循环中断了,我得到了#34; undefined index&#34; &#34; name&#34;的错误和&#34;收集&#34;在我的$ html变量行中。
根据我在本网站上找到的答案,我已尝试过这些循环:
while($collections = mysqli_fetch_array($result)) {
$summary = $collections['collection'];
echo $summary;
}
while($row = mysqli_fetch_assoc($result)) {
var_dump($row);
}
$rows = new MySqlResult($collections);
foreach ($rows as $row) {
$summary = $row['collection'];
echo $summary;
}
答案在这里找到: MySQL Display Multiple Rows&amp; MySQL returns only one row&amp; PHP mySQLi_fetch_all: iterate through each row
前两个只返回最后一行,而最后一个不起作用(我认为MySqlResult可能已经折旧了。我尝试了mysqli_result,但它也没有工作)。
我不确定我错过了哪一块拼图。
如果我使用mysqli_fetch_all,我怎样才能获得每个项目的所有信息?有一个更好的方法吗?也许我也可以在$ html变量中传递fetch_all数组ID,但我也不确定如何做到这一点。
我是PHP的新手,所以请原谅我,如果这很简单的话。
答案 0 :(得分:2)
使用mysqli_fetch_assoc
在循环中获取行。在此函数返回的循环使用变量中:
public override void VerifyRenderingInServerForm(Control control)
{
}
答案 1 :(得分:0)
$query = "SELECT * FROM table";
$result = mysqli_query($con, $query);
$ALLDATA = array();
while ($record = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
array_push($ALLDATA, $record);
}
mysqli_free_result($result);
$ALLDATA
现在将拥有所有数据,您可以随意使用它。
答案 2 :(得分:-1)
@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>';