问题是get_row
返回行对象(或数组),而不是行对象数组。
你想要的$wpdb->get_results
相反如果只有一个结果,则始终返回一个行对象数组,即事件。
您还可以添加
if($satrent){
//Foreach on $satrent
}
因此,如果没有返回任何结果,您只需不显示表(或显示其他内容),而不是尝试遍历空对象,这将导致错误。
正如Chip在他的回答中指出的那样:你正在使用$satrent
在foreach循环中,而不是$sr
.
请尝试以下代码:
<?php
global $wpdb;
$rows= $wpdb->get_results("SELECT id, name FROM phones WHERE phonetype = \'satellite\' AND rent = \'1\'", ARRAY_A);
?>
然后循环遍历每行
<?php if($rows): ?>
<?php foreach($rows as $row): ?>
<tr>
<td> </td>
<td><?php echo $row[\'name\']; ?></td>
<td><a href="#view">View</a></td>
<td><a href="#edit">Edit</a></td>
<td><a href="#delete">Delete</a></td>
</tr>
<?php endforeach; ?>
<?php endif; ?>
Edit: 请参阅芯片回答为什么会看到重复。但您看到的是两行,因为您正在遍历每个返回的列:“name”和“id”。在对芯片进行校正后,您会发现该表为数据库中的每一列显示了一行-请参阅我的解决方案以解决此问题。