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

Php 使用foreach循环从表中提取数据时出现问题,php,sql,Php,Sql,我在从数据库表中获取数据时遇到问题,在使用foreach将数据加载到数组和循环中之后,它将返回空白而不是值。我尝试过使用这种方式$row['']它工作正常,但我想使用这个操作数->,但它获取银行数据 $query = "SELECT * FROM pages_words"; $select_posts = mysqli_query($connection, $query); $rows[] = array(); while ($row = mysqli_fetch_assoc($select

我在从数据库表中获取数据时遇到问题,在使用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>';
        }

    }

}

?>

$query=“选择*来自页面\u单词”;
$select_posts=mysqli_query($connection,$query);
$rows[]=array();
while($row=mysqli\u fetch\u assoc($select\u posts))
$rows[]=$row;
foreach($key=>$row的行){
$idpw=$row['idpw'];
$pages=$row['pages'];
$words=$row['words'];
$amount_added=$row['amount_added'];
$page_type=$row['page_type'];
如果($page_type=='double'){
如果($row->idpw==$post['no\u of\u pages']){
回显'.$row->pages.'Page(s)/'.$row->文字'.'';
}否则{
回显'.$row->pages.'Page(s)/'.$row->文字'.'';
}
}
}
?>

请帮助解决您使用的
mysqli\u fetch\u assoc()
将行作为关联数组获取的问题。在foreach循环的其他地方,您使用数组语法正确地访问行,例如
$idpw=$row['idpw']。无法使用对象语法访问数组值。在输出选项时,可以使用
$row->idpw
,而不是使用
$row['idpw']
,或者只使用前面创建的
$idpw
变量


如果您想让arrow操作符工作,则需要使用mysqli_fetch_object()
,但如果这样做,则需要将使用数组语法的位置更改为使用对象语法。

没有理由获取所有行,然后使用另一个循环遍历它们。只需在第一个
while()
循环中,您就可以完美地完成所有工作。