Suchfunktion mit Variabel

Blackmoor

Mitglied
Hallo erstmal,
Also hab eine Suchfunktion die nach Namen suchen kann und nach verschiedenen Kriterien sortieren kann, nun soll die aber auch nach "branche" (siehe script) sortieren, in der Datenbank steht unter branche z.B. :"lx be" , nun wird per Form in die veriabel $branche"lx" geschrieben, was nun aber nicht klappt ist dass nur die Beiträge angezeigt werden wo unter branche auch, unter anderem, lx steet.

Code:
$sql="SELECT numm, branche, categorie, date, ID FROM $tnumm";
if($sort=='numm' OR $sort=='categorie' OR $sort=='date' OR $sort=='branche')
{
$sql.=" ORDER BY ";
$sql.=$sort;
$sql.=" DESC ";

}
if(!$name)
{
if(!$branch)
{
}
else
{
$sql="SELECT numm, branche, categorie, date, ID FROM $tnumm WHERE branche LIKE '%$branche%'";
}
}
else
{
$sql="SELECT numm, branche, categorie, date, ID FROM $tnumm WHERE numm LIKE '%$name%'";
}
Ich weiss dass ich mich nicht sonderlich geschickt angestellt hab mit den if schleifen, aber wie sagt man so schön, solang es funktioniert geh ma lieber nicht ran werkeln ;)
 
Hallo,

vielleicht solltest zuallerst hier im Forum auch darauf achten, mit Satzzeichen nicht so sparsam umzugehen ;) . Ein zwei Punkte an das Satzende anstatt einem Komma, und dein Beitrag wird einfacher zu lesen sein.

Zum Thema:
Du prüfst die Variable $branch auf Inhalt, verwendest im SQL-Statement aber $branche. Ein Tippfehler?
 
Blackmoor hat gesagt.:
Ich weiss dass ich mich nicht sonderlich geschickt angestellt hab mit den if schleifen, aber wie sagt man so schön, solang es funktioniert geh ma lieber nicht ran werkeln ;)
1. Das kann ja schon mal gar nicht sortieren wenn nach irgend was gesucht wird weil Reihenfolge verkehrt!
2. Mit deiner komischen Negativ-Verschachtelung funktioniert keine Suche nach `name` und `branche`
PHP:
$where = "";
if(isset($name) AND $name != "") $where .= " AND ".$name;
if(isset($branch) AND $branch != "") $where .= " AND ".$branch;
if(isset($sort) AND $sort != "") $sort .= " ORDER BY ".$sort." DESC";
$sql="SELECT numm, branche, categorie, date, ID FROM ".$tnumm." WHERE 1".$where.$sort;
 
Tatsächlich funktioniert irgendwie nur meine Versionen ;)
War nur ein Tippfehler. Danke für die Hilfe.
Und sorry wegen der Satzzeichen, war bisl in Eile :)

edit: Hab den andern Code zum laufen gebracht, mit kleinen Änderungen:
Code:
if(isset($name) AND $name != "") $where .= " WHERE numm LIKE '%$name%'";
if(isset($branche) AND $branche != "") $where .= " WHERE branche LIKE '%$branche%'";
if(isset($sort) AND $sort != "") $sort .= " ORDER BY ".$sort." DESC";
$sql="SELECT numm, branche, categorie, date, ID FROM ".$tnumm." ".$where.$sort;

Blackmoor
 
Zuletzt bearbeitet:
Zurück