Ich habe eine Datenbank in MySQL, die 2 Tabellen eine benannte Kategorie (cat_id Primärschlüssel) und ein benanntes Buch (b_id als Primärschlüssel) hat, wobei cat_id ein Fremdschlüssel für Buch ist. Ich bin in CI arbeiten und ich hier geben die Kategorien in einer Ansicht:Wie Parameter an Controller in CodeIgniter übergeben werden
foreach($categories->result()as $row){
foreach($categories->result()as $row){
echo '<a href="category_details?cat_id=$cat_id">'.$row->category.'</a><br>';
}
}
Ich möchte, dass, wenn auf den Link category_details
zur Ausgabe nur die Bücher dieser Kategorie klicken. Hier habe ich diese Methode in meinem Controller:
public function category_details($data)
{
$data['cat_id'] = $this->home_model->output_cat_detail();
$data['category_detail'] = $this->home_model->output_cat_detail();//printon librat
$data['categories'] = $this->home_model->output_categories();
$this->load->view('header', $data);
$this->load->view('category_details', $data);
}
So ist die Methode in Modell, das diese Auswahl tut, ist dies:
public function output_cat_detail(){
$condition = "cat_id =" . "'" . $data['cat_id'] . "'";
$this->db->select('*');
$this->db->from('book');
$this->db->where($condition);
$query = $this->db->get();
return $query;
Aber nach Ich mache das, wenn ich in eine Kategorie klicke, erscheinen alle Bücher nicht nur die Bücher dieser Kategorie, auf die ich geklickt habe. Kann mir jemand mit der Bedingung helfen, nur die Bücher dieser Kategorie auszuwählen?
hier '' müssen Sie category_id auch wie anhängen: - '' und dann 'ändern category_details ($ id) 'und dann eine where-Abfrage so etwas wie: -'SELECT * FROM Bücher WHERE cat_id = $ id'; –
Ich habe nur das nicht erkannt: category_details ($ id) ändern. Was meinst du damit? – Daniel
Ändern Sie den Funktionsnamen wie folgt. ID als Parameter dort übergeben –