Codeigniter Suche zwischen Daten und weitere Parameter
Ich versuche zu realisieren eine Suchmaschine auf meine Seite, ich will die Suche nach tickets über diese Parameter:
- Ticket# und/oder
- Umfang/Schlagwort (Jedes Wort oder Zeichen in die ticket-Beschreibung) und/oder
- Zwischen 2 Termine, Start Datum und End-Datum
Die Suche-Funktion in meinem Modell geht so:
function search($id,$scope,$start_date,$end_date)
{
if (!empty($id) || !empty($scope)){
$this->db->like('TROUBLE_ID', $id);
$this->db->or_like('PROBLEM_DESCRIPTION', $scope);
$this->db->where('ASSIGNED_DATE >=', $start_date);
$this->db->where('ASSIGNED_DATE <=', $end_date);
$query = $this->db->get($this->db);
return $query->result_array();
}
else {echo 'No results to display';}
}
Mein controller Funktion:
function search_keyword()
{
//Search Engine
$id = $this->input->post('ID');
$scope = $this->input->post('SCOPE');
$start_date = $this->input->post('STARTING_DATE');
$end_date = $this->input->post('ENDING_DATE');
$data['results'] = $this->rfi_model->search($id,$scope,$start_date,$end_date);
$this->load->view('ticketSearchParameters',$data);
}
Und die Ergebnisse Anzeigen Seite:
<?php
foreach($results as $row){
$id = $row['TROUBLE_ID'];
?>
<tr>
<td><?php echo $row['TROUBLE_ID']?></td>
<td><?php echo $row['ASSIGNED_DATE']?></td>
<td><?php echo $row['CREATOR']?></td>
<td><?php echo $row['PROBLEM_DESCRIPTION']?></td>
<td><?php echo $row['RESOLUTION']?></td>
<td><?php echo $row['RESOLVED_DATE']?></td>
</tr>
<?php
}
}
?>
Aber irgendwie ist die Suche nicht kommt, Es nicht funktioniert, wenn ich die ticket# Feld leer und ist nicht das filtern der tickets, die zwischen diesen 2 Termine auch. Irgendeine Idee? Dank
- Es funktioniert nicht, wenn Sie verlassen das ticket# Feld leer, bcz es ist ein Zustand, der
if (!empty($id) || !empty($scope)){
- Ich benutze den Zustand, zu Testzwecken, selbst wenn ich es löschen, es funktioniert nicht
- Haben Sie versucht, $this->db->last_query()?
- Im mit
$this->output->enable_profiler(TRUE);
und zeigt, dass keine Anfragen gemacht wurden
Du musst angemeldet sein, um einen Kommentar abzugeben.
versuchen zu Debuggen mit
und dann versuchen, das sql direkt in phpmyadmin, dies wird Ihnen helfen, das Problem..
Ich denke, Sie sind zwei verschiedene Probleme. Meine Vermutung über die Datum-Suche nicht funktioniert ist, dass Sie nicht in yyyy-mm-dd-format, das ist, was MySQL benötigt für den Vergleich.
Es funktioniert nicht, wenn Sie verlassen-ID leer, weil Sie nicht ausschließen Sie diese Zeile aus Ihrem Zustand auf eine leere ID.
Also, wenn Sie lassen Sie eine leere ID leer ist, aber die Linie ist immer inklusive, Sie Fragen MySQL, um nur die Rückgabe von Zeilen, die mit leer-IDs.
Dies ist eine Möglichkeit, Sie könnte es lösen. Ich wurde ein parameter für dieses Beispiel, weil, wenn Sie wissen, die id, die Sie wahrscheinlich nicht brauchen, ein Schlüsselwort als gut, und auch, um das Beispiel einfacher.
$id_or_scope
kommt?