使用foreach循环从表中获取数据时出现问题

时间:2020-02-24 14:57:07

标签: php sql

在将数据加载到数组中并使用foreach循环后,我从数据库表中获取数据时遇到问题,它返回空白而不是值。我尝试使用这种方式$row['']可以正常工作,但我想使用此操作数->但要获取银行数据。

$query = "SELECT * FROM pages_words";

$select_posts = mysqli_query($connection, $query);
$rows[] = array();

while ($row = mysqli_fetch_assoc($select_posts))
$rows[] = $row;

foreach ($rows as $key => $row) {
    $idpw = $row['idpw'];
    $pages = $row['pages'];
    $words = $row['words'];
    $amount_added = $row['amount_added'];
    $page_type = $row['page_type'];
    if ($page_type == 'double') {
        if ($row->idpw == $post['no_of_pages']) {
            echo '<option selected="selected" id="' . $row->idpw . 'nop" value="' . $row->idpw . '" title="' . $row->amount_added . '"> ' . $row->pages . ' Page(s) / ' . $row->words . ' Words</option>';
        } else {
            echo '<option id="' . $row->idpw . 'nop" value="' . $row->idpw . '" title="' . 
            $row->amount_added . '"> ' . $row->pages . ' Page(s) / ' . $row->words . ' Words</option>';
        }

    }

}

?>

blank data 请帮助解决问题

1 个答案:

答案 0 :(得分:0)

您使用了mysqli_fetch_assoc(),它可以将行作为关联数组来获取。在foreach循环的其他位置,您正在使用数组语法(例如$idpw = $row['idpw'];)正确访问该行。您无法使用对象语法访问数组值。在输出选项时,可以使用$row->idpw,也可以只使用先前创建的$row['idpw']变量,而不是使用$idpw

如果希望箭头运算符起作用,则需要使用mysqli_fetch_object(),但是如果这样做,则需要更改使用数组语法的位置,以将对象语法用作好吧。