Ich hab hier ne Suche mit mehreren Kriterien, irgendwie check ich aber nicht wie ich die querys bauen muss, ich ständig fehler bekomme.
wie würdet ihr das besser machen
	
besten dank
Problem:
	
		
 
							
						
					wie würdet ihr das besser machen
PHP-Code:
	
	
<?php
        // wird für die mysql abfrage benötigt    
        //search bzw a-z ansicht
        $status = get_var('status', TYPE_GET);
        $search = get_var('search', TYPE_POST);
        $show = get_var('show', TYPE_GET);
        //es handelt sich um eine projektnummer
        if (ctype_digit($search) AND !empty($search) ) {
            //nummer auseinandernehmen
            $filter = "WHERE `spid` LIKE '".substr($search, 4)."'";
            $filter .= "AND YEAR(date)=20".substr($search,2,2)." AND MONTH(date)=".substr($search,0,2)."";    
        //es handelt sich um eine projektnummer
        } else if (!empty($search)) {
            $filter = "WHERE `pname` LIKE '%".$search."%'";
        } elseif (!empty($show) ) {
            $filter = "WHERE `name` LIKE '".$show."%'"; 
        } else {
            $filter ="";
        }
        //statusansicht
        if (!empty($status)) {
            $status = "AND status=".$status."";
        }
        elseif ($status== "0") {
            $status = "AND status=0";
        }
        else {
            $status = "";
        }
        //blättern
        $sql = "SELECT 
                    P.pid as pid, P.spid as spid, P.date as pdate, P.status, P.spid
                FROM 
                    ".PREFIX."projekt P 
                $filter
                $status ";
        vd($sql);
        
        $result = $objDB->query($sql);        
        if(DB::isError($result)) {        
            die($result->getMessage());    
        }
        //anzahl aller einträge für die aktuelle seite
        $count = $result->numRows();
        //Wenn keine Seite gewählt Site = 0
        $get_page = get_var('page', TYPE_GET);
        if (empty($get_page)) {
            $page = 0;
        }else{
            $page = $get_page;
        }
        $sql = "SELECT 
                    P.pid as pid, P.name as pname, P.date as pdate, P.status, P.spid,
                    C.name as cname
                FROM 
                    ".PREFIX."projekt P
                    LEFT JOIN ".PREFIX."client C 
                        ON C.cid = P.cid
                $filter 
                $status
                ORDER BY 
                    `P.name` ASC  
                LIMIT 
                    $page , 10"; 
                vd($sql);
        $result = $objDB->query($sql);    
        if(DB::isError($result)) {        
            die($result->getMessage());    
        }
?>
besten dank
Problem:
			
			
				http://www.mysql.de/doc/de/Problems_with_alias.html
Beachten Sie, dass ANSI-SQL verbietet, in einer WHERE-Klausel auf ein Alias zu verweisen. Das liegt daran, dass der Spaltenwert möglicherweise noch nicht feststeht, wenn der WHERE-Code ausgeführt wird.
	Beachten Sie, dass ANSI-SQL verbietet, in einer WHERE-Klausel auf ein Alias zu verweisen. Das liegt daran, dass der Spaltenwert möglicherweise noch nicht feststeht, wenn der WHERE-Code ausgeführt wird.
 
          
Kommentar