好的,所以我有这个奇怪的问题。我的num_rows无效,我尝试了一切。
所以这个想法是,如果数据库中没有选定的行,则应该显示<div>
。但事实并非如此。
我没有错误消息,所以我不知道该怎么办。
<?php
$query = $this->db->query("SELECT null FROM donations WHERE donateName = ? ORDER BY donateID DESC LIMIT 1", array(getUserData($this->session->userdata('logged_in')["id"], "name")));
foreach($query->result() as $row) {
if(!$query->num_rows()) { ?>
<div class="col-lg-4">
<div class="card">
<div class="card-header">
<h5 class="card-header-text">I</h5>
</div>
<div class="card-block">
<ul style="margin-left: 25px; list-style: initial;">
<br><li>test</li>
</ul>
</div>
</div>
</div>
<?php } } ?>
答案 0 :(得分:0)
对不起,由于我错了,我决定编辑答案。
您只需要删除foreach
循环即可。
答案 1 :(得分:0)
您应该删除
foreach($query->result() as $row) {
(并关闭}
)。
,因为这通常是遍历结果集。您只想说没有行,所以只有if
。
您也可以从SQL中删除ORDER BY donateID
,因为它们返回的顺序并不重要。
答案 2 :(得分:0)
如果您使用的是codeigniter,那么您可能会喜欢这种查询格式。
// Model
function get_count($table, $where = array(), $fields = false) {
// echo"<pre>";print_r($where);exit;
if (!$fields) {
$fields = '*';
}
$this->db->select($fields);
$this->db->from($table);
$this->db->where($where);
$query = $this->db->get();
// echo $this->db->last_query();exit;
return $query->num_rows();
}
通过提供所需的参数来调用函数,例如
// Controller
$table = 'mytalbe';
$where = array(
'id' => '34' // for example
);
$count = get_count($table, $where);
希望这会在将来帮助您重用代码。