2017-11-14 1 views
0

Ich habe versucht, eine Suchleiste, so dass Benutzer in der Lage sein, Produkte durch die Suche nach dem Produktnamen suchen, aber es funktioniert nicht, und ich bin nicht in der Lage, ein Produkt zu suchen.Suche Produktdaten arbeiten nicht in Codeigniter

Dies ist mein Controller-Funktion:

<?php 
class SearchController extends CI_Controller { 
    function __construct(){ 
    parent::__construct(); 
    $this->load->model('Search_model'); 
    } 

    public function index(){ 
    $data = array(); 
    } 

    function search_keyword(){ 
    $keyword = $this->input->post('keyword'); 
    $data['results'] = $this->Search_model->search($keyword); 
    //laad de view 
    $this->load->view('result_view',$data); 
    } 
} 
?> 

Diese Funktion mein Modell ist:

<?php 
defined('BASEPATH') OR exit('No direct script access allowed'); 

class Search_model extends CI_Model { 
    function __construct(){ 
     parent::__construct(); 
    } 

    function search($keyword) { 
     $this->db->select('product_naam'); 
     $this->db->like('product_naam',$keyword); 
     $query = $this->db->get('products'); 
     return $query->result_array(); 
    } 
} 
?> 

Und das ist meine Ansicht Datei mit searchbar:

<?php include_once('templates/header.php'); ?> 
    <center> 
    <h2>Zoek een cadeau</h2><br> 
     <form class="navbar-form" role="search" action="<?php echo base_url(); ?>SearchController/search_keyword" method="POST"> 
      <div class="input-group"> 
       <input type="text" class="form-control" placeholder="Search" name="keyword" size="30px; "> 
       <div class="input-group-btn"> 
        <button class="btn btn-default " type="submit" value = "Search"><i class="glyphicon glyphicon-search"></i></button> 
       </div> 
      </div> 
     </form> 
    </center> 
    <div class="clearfix"></div> 
    <table> 
    <?php foreach($results as $row){ ?> 
     <tr> 
     <td><?php echo $row->product_naam?></td> 
     </tr> 
    <?php } ?> 
    </table> 
<?php include_once('templates/footer.php'); ?> 

Ich hoffe jemand kann hilf mir bei diesem problem !, danke

+0

Was meinst du mit "es funktioniert nicht"? Sendet das Formular nicht ein? Gibt es keine Werte zurück? Gibt es einen Fehler? – kchason

+0

das Problem ist, wenn ich das Suchformular mit einem Produktnamen in das Feld einreichen und ich auf submit klicken passiert nichts und Seite wird aktualisiert, danke – Learningprogrammingphp44

Antwort

2

Ich denke nicht wie() wird Ihnen viel mit Ihren besonderen Bedürfnissen helfen. Ihre beste Wette, glaube ich, wäre das Problem zu umgehen und verwenden eine where-Funktion mit Ihrer LIKE-Klausel:

$this->db->select('product_naam')->from('products') 
$this->db->where("product_naam LIKE '%$keyword%'")->get(); 

Oder wenn Sie rein wollen ci Sie ‚wie‘ Zeile ändern müssen:

$this->db->like('product_naam',$keyword); 

For% $ query können Sie

$this->db->like('product_naam',$keyword,'before'); 

und für $ query% verwenden, können Sie verwenden

$this->db->like('product_naam',$keyword,'after'); 
+0

anstelle von 'title' muss product_naam für mich richtig sein? – Learningprogrammingphp44

+0

ja dein Spaltenname –

+0

Wenn ich deine erste Lösung verwende: $ this-> db-> like ('title', $ query); Ich erhalte diese Fehlermeldung, wenn ich die Seite zu laden: Ein PHP-Fehler aufgetreten Schweregrad: Hinweis Nachricht: Undefined variable: Abfrage Dateiname: Modelle/Search_model.php Zeilennummer: 17 Backtrace: Datei :/home/ubuntu/workspace/anwendung/models/Search_model.php Line: 17 Funktion: _error_handler Datei: /home/ubuntu/workspace/application/controllers/SearchController.php Line: 20 Funktion: Suche Datei: /home/ubuntu/workspace/index.php Line: 315 Funktion: require_once – Learningprogrammingphp44

1

Weil Sie $query->result_array(); verwenden, Gegenstände sollten von

<td><?php echo $row['product_naam']?></td> 

result_array()

Diese Methode liefert das Abfrageergebnis als reine Array oder ein leerer Array, wenn kein Ergebnis genommen werden wird

produziert CI documentation

012.
+0

yeh aber funktioniert nicht, wenn ich das Formular übermittele, die ich nach Schlüsselwort suchen und dann zeige den Produktnamen – Learningprogrammingphp44

+0

* funktioniert nicht * - Wird die Seite angezeigt? Wird Array von einer DB zurückgegeben? Was passiert nicht? – splash58

Verwandte Themen