PHP迭代每一行

时间:2016-05-05 02:45:45

标签: 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 = $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的新手,所以请原谅我,如果这很简单的话。

3 个答案:

答案 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>';