Nach mehreren Kriterien suchen

Dieses Thema im Forum "Programmieren" wurde erstellt von skydragon, 4. April 2006.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. skydragon

    skydragon Kbyte

    Registriert seit:
    5. Januar 2003
    Beiträge:
    168
    Hallo ich muss für ein Projekt eine Suche programmieren in php mit mysql.
    Die Anforderung ist das ich einen bestimmten gerätetyp auswählen und darunter dann die suchbegriffe eingeben kann.
    ich hab die suche nun programmiert udn sie funktioniert ganz gut nur leider nicht so wie sie soll. sie durchforstet die datensätze zwar nach den suchbegriffen aber ignoriert den gerätetyp den sie übergeben bekommt.

    Ein Datensatz sieht so aus: inventarnummer,...,geraettyp (hier ist ein wert gespeichert),...., Was ich nun will ist das sich die Suche alle datensätze raussucht, wo der geraettyp = der übermittelten Wertes ist und dann die gefundenen Datensätze nach den suchbegriffen durchsucht

    Hier der Code

    PHP:
    $typ $_REQUEST["typ"];
    $eingabe $HTTP_POST_VARS['suchen'];



    echo 
    $typ;
    $eingabe_array explode(' ',$eingabe);

    $query "SELECT * FROM pc WHERE geraettyp = $typ $$"//anfang der abfrage 
        
    for($i=0$i<count($eingabe_array); $i++){ 
            
    $query .= "invnr like '%".$eingabe_array[$i]."%' or hardware like '%".$eingabe_array[$i]."%' or software like '%".$eingabe_array[$i]."%' or bemerkung like '%".$eingabe_array[$i]."%'"
                
    //ob der $i-te begriff in einer den Spalten enthalten ist (mit oder verknüpft) 
            
    if($i<count($eingabe_array)-1){ 
                
    $query .= ' or '
            } 
            
    //verknüpfung der einzelnen worte mit und 
        

        
        echo 
    "QUERY(    " .$query ")\n";
        
    $erg mysql_db_query('ivzinv',$query); //anfrage an die datenbank 
        
    $num mysql_num_rows($erg);; //anzahl der zurückgegebenen datensätze 
        
    echo "<br>";
        echo 
    $num " gefundene Datensätze<p>";
        
        if(
    $num ){
            echo
    '<table border="1">
                <tr>
        
                    <th>Inventarnummer</th>
                    <th>Hardware</th>
                    <th>Software</th>
                    <th>Bemerkung</th>
                    
        
                </tr>'
    ;
        
        
    //Ausgabe des Datenbankinhaltes zum gewählten Typen
        
        
    while($row=mysql_fetch_array($erg,MYSQL_ASSOC))
        {
            
    $nr $row['invnr'];
            
    $hw $row['hardware'];
            
    $sw $row['software'];        
            
    $bk $row['bemerkung'];
            
            
            echo 
    "<tr>\n";
                echo 
    "<td>$nr</td> <td>$hw</td> <td>$sw</td>\n";
                echo 
    "<td>$bk</td>";
                echo 
    "<form action = \"./admin.php\" method = \"post\">\n";
                    echo 
    " <td>\n";
                    echo 
    "  <input type='hidden' name='auswahl' value= '$nr'>\n";
                    echo 
    "  <input type='submit' value= 'Bearbeiten'>\n";
                    echo 
    " </td>\n";
                echo 
    "</form>\n";
                echo 
    "<form action = \"./admin.php\" method = \"post\">\n";
                    echo 
    "<td>\n";
                    echo 
    "  <input type='hidden' name='loeschen' value= '$nr'>\n";
                    echo 
    "  <input class=delete type='submit' value= 'X'>\n";
                    echo 
    "</td>\n";
                echo 
    "</form>\n";
            echo 
    "</tr>";
        }
        echo 
    "</table>";
        }
        else{
        echo 
    "Es wurden keine Datensätze gefunden!";
        }
    Hat einer von euch ne Idee die mir weiterhelfen könnte?
     
Status des Themas:
Es sind keine weiteren Antworten möglich.

Diese Seite empfehlen