这将是我的最后一个问题。
我没有得到任何行,我不知道我做错了什么,加上我想要返回多行,
就像在mysql中我可以使用这样的参数,因此我可以返回多行,这对于搜索是一个有用的查询,因为大多数搜索都没有准确写入或很多。例如,我想搜索作者约翰的一本书,但约翰有5本书,如果我使用first_row,它只会返回第一本书,并且我可能有机会在第二或第三或第四本书或第5行。
我是ci的新手,我读了一个指南,其中我可以使用num_rows()但我不知道如何使用它,因为我没有看到一个例子。我搜索过,但令我失望的是,我发现没有什么可以满足我的需求。
这是我的HTML:
<?php echo form_open('bookstore/booksearch'); ?>
<table>
<tr>
<td>
<label for="searchid">Search:</label>
</td>
<td>
<input type="text" size="15" name="searchval" />
</td>
</tr>
<tr>
<td>
<label for="searchtype">Type:</label>
</td>
<td>
<select name="searchtype">
<option value="book_id">Id</option>
<option value="book_author">Author</option>
<option value="book_name">Title</option>
</select>
</td>
</tr>
<tr>
<input type="submit" name="submit" value="Search" />
</tr>
</table>
<?php echo form_close(); ?>
</ul>
</div>
<div>
<table cellpadding='5'>
<th>Book ID</th>
<th>Title</th>
<th>Author</th>
<th>Released Year</th>
<th>ISBN</th>
<?php
if(isset($books)) : foreach($books as $book) :
?>
<tr>
<td><?php echo $book['book_id'] ?></td>
<td><?php echo $book['book_name'] ?></td>
<td><?php echo $book['book_author'] ?></td>
<td><?php echo $book['book_year'] ?></td>
<td><?php echo $book['book_isbn'] ?></td>
</tr>
<?php
endforeach;
?>
<?php
else :
?>
<h5>No records</h5>
<?php
endif;
?>
</table>
控制器:
public function booksearch()
{
if($_POST['submit'])
{
$col= $this->input->post('searchtype');
$val= $this->input->post('searchval');
$data['book'] = $this->books_model->showbook($col,$val);
}
$this->load->view('showbooks',$data);
}
和我的模特:
public function showbook($col, $searchid)
{
$this->db->select()->from('books')->where(array($col=>$searchid));
$query=$this->db->get();
return $query->first_row('array');
}
我之前已经发布了一个问题,但代码类似,我解决了它,因为我只错过了name属性,你不希望的小问题可能真的浪费你的时间。我希望这次我不会错过任何事情,如果它发生了两次,我会感到羞耻。谢谢你的耐心等待!
答案 0 :(得分:1)
替换:
public function showbook($col, $searchid)
{
$this->db->select()->from('books')->where(array($col=>$searchid));
$query=$this->db->get();
return $query->first_row('array');
}
致:
public function showbook($col, $searchid)
{
$this->db->select()->from('books')->where(array($col=>$searchid));
$query=$this->db->get();
return $query->result_array();
}