Php 如何使num_行用于此select查询?

Php 如何使num_行用于此select查询?,php,mysql,codeigniter,Php,Mysql,Codeigniter,好的,我有一个奇怪的问题。我的数字行不行,我什么都试过了 因此,这个想法是,如果数据库中没有选定的行,它应该显示一个。但事实并非如此 我没有错误消息,所以我不知道我能做什么 <?php $query = $this->db->query("SELECT null FROM donations WHERE donateName = ? ORDER BY donateID DESC LIMIT 1", array(getUserData($this->session-

好的,我有一个奇怪的问题。我的数字行不行,我什么都试过了

因此,这个想法是,如果数据库中没有选定的行,它应该显示一个
。但事实并非如此

我没有错误消息,所以我不知道我能做什么

<?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 } } ?>

  • 试验

对不起,我决定编辑我的答案,因为我错了


您只需删除您的
foreach
-循环。

您只需删除

foreach($query->result() as $row) {
(并关闭
}

因为这通常是在结果集上循环。您只想说没有行,所以只要使用
if


您还可以从SQL中删除donateID的
顺序,因为它们返回的顺序并不重要。

如果您使用的是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();
}

希望这将有助于您将来重用代码。

您是否尝试过检查num_rows()的值?我该怎么做?CodeIgniter基于模型-视图-控制器开发模式。MVC是一种将应用程序逻辑与表示分离的软件方法。实际上,它允许您的网页包含最少的脚本,因为演示文稿与PHP脚本是分开的。" . 你为什么不利用这种方法呢?为什么要在查看页面中将所有内容混合在一起?@4Gamers:echo输出结果,就在您的
if
conditionOk的上方,所以我尝试了您的版本。如果我尝试将$query->num_rows()=设置为0,它不会返回任何结果。我尝试做的事情是仅当数据库中没有行时才显示div。好的,然后删除
foreach
-循环。因为我觉得没用。
// Controller
$table = 'mytalbe';
$where = array(
  'id' => '34' // for example
);
$count = get_count($table, $where);