DB abfrage / suche

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • DB abfrage / suche

    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

    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($search4)."'";
                
    $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.
    Zuletzt geändert von mukraker; 14.01.2004, 13:19.
    thx Mukraker

  • #2
    hat sich erledigt

    warn ein paar ``zuviel
    thx Mukraker

    Kommentar

    Lädt...
    X