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);