Ich bin gerade dabei eine suchen klasse zu schreiben. Soweit funktioniert es auch, aber wenn ich mehr als eine Spalte durchsuchen will kriege ich als query folgendes:
[CODE]
Suchergebnisse zu: Hi, dies ist ein Test
Query: SELECT * FROM test WHERE OR name LIKE ‚%Hi,%dies%ist%ein%Test%‘ OR beschreibung LIKE ‚%Hi,%dies%ist%ein%Test%‘
[/CODE]wie kriege ich das erste OR weg?
Hier mal der Code:
[PHP]
class search {
private $table;
private $s_string;
private $standard;
private $maxlength = 2;
private $spalten;
private $order;
private $desc;
public function __construct($table, $s_string, $standard, $spalten, $order, $desc) {
$this->table = $table;
$this->s_string = $s_string;
$this->standard = $standard;
$this->spalten = $spalten;
$this->order = $order;
$this->desc = $desc;
}
public function find() {
if($this->s_string == $standard || empty($this->s_string)) {
return "Sie müssen etwas zum suchen eingeben!";
}
elseif(strlen($this->s_string) <= $this->maxlength) {
return "Der Suchbegriff \"".$this->s_string."\" ist zu kurz!";
}
else {
$suche = str_replace(" ", "%", trim($this->s_string, " "));
$query = "SELECT * FROM ".$this->table." WHERE ";
if(count($this->spalten) == 1) {
$query = $query.$this->spalten[0]." LIKE '%".$suche."%'";
}
else {
foreach($this->spalten as $spalte) {
$query = $query." OR ".$spalte." LIKE '%".$suche."%'";
}
}
if(isset($this->order)){
$query = $query."ORDER BY ".$this->order;
if($this->desc) {
$query = $query." DESC";
}
}
//$result = mysql_query($query) or die(mysql_error());
return "Suchergebnisse zu: ".$this->s_string."<br>Query: ".$query;
}
}
}
$suche = new search(„test“, „Hi, dies ist ein Test“, „Suche…“, array(„name“, „beschreibung“), „id“, true);
echo $suche->find();
[/PHP]