這將是我最後一個問題。獲取數組結果和行操作
我越來越沒有行作爲一個結果,我不知道什麼即時做錯了,再加上我想返回多行,
像MySQL的,我可以只使用一個參數,像這樣我就可以返回多行這對搜索很有幫助,因爲大多數搜索都沒有準確的書寫或很多。例如,我想從作者約翰那裏搜索一本書,但約翰有5本書,如果我使用first_row,它只會返回第一本書,並且可能有一個機會,即尋找的將在第二或第三或第四或第五排。
我是新來的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');
}
我已經發布了一個問題早,但類似的代碼,我解決了它因爲我只錯過了名字屬性,所以你不認爲是問題的小事可能會浪費你的時間。我希望這次我沒有錯過任何東西,如果它發生了兩次,我會感到羞恥。謝謝你的耐心!
請參照您在以前的帖子給我的答案是:http://stackoverflow.com/a/18082800/989234 – Mudshark
FYI:您可以ommit'select()',請看http://net.tutsplus.com/sessions/codeigniter-from-scratch/ :) – Kyslik