Verschiedene SQL - Abfragen durchführen

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

  • Verschiedene SQL - Abfragen durchführen

    Ich habe eine DB für Dokumente. Jetzt möchte ich, dass die Datensätze nach bestimmten Kriterien durchsucht werden wenn der User eine Sortierfunktion aufgerufen hatt.

    Wie erstelle ich die Afrage so, dass er mir die Datensätze entsprechend den Suchkriterien ausgibt. Also alles in einer Abfrage.

    Hier sind mal die Funktionen für die Sortierung:

    PHP-Code:

    function letter() {
        
        
    $alphabet = array ("ALL""A","B","C","D","E","F","G","H","I","J","K","L","M",
                                
    "N","O","P","Q","R","S","T","U","V","W","X","Y","Z");

            
    $num count($alphabet) - 1;
            echo 
    "<center>";
        
    /* start of HTML */
            
    $counter 0;
            while (list(, 
    $ltr) = each($alphabet)) {
                echo 
    "[<A HREF=\"index.php?letter=$ltr\">$ltr</a>]";
                if ( 
    $counter == round($num/2) ) {
                    echo 
    " <p>\n\n"
                } elseif ( 
    $counter != $num ) {
                    echo 
    "&nbsp;\n";
                }
                
    $counter++;
            }
            echo 
    " \n</center>\n<br>\n";  // end of HTML
    }    

    ########################################################################################
    # Erstellt eine Liste zum Sortieren
    ########################################################################################
    function SortTut() {

            global 
    $sortby;
            
            echo 
    "\n<center>\n";
            echo 
    "<b>[</b> ";
            
            if (
    $sortby == "sprache") {
                echo 
    "&nbsp;|&nbsp;";
            } else {
                echo 
    "<A HREF=\"index.php?sortby=lang\">Sprache</a>&nbsp;|&nbsp;";
            }
            
            if (
    $sortby == "titel") {
                echo 
    "&nbsp;|&nbsp;";
            } else {
                echo 
    "<A HREF=\"index.php?sortby=titel\">Titel</a>&nbsp;|&nbsp;";
            }        
            
            if (
    $sortby == "datum") {
                echo 
    "&nbsp;|&nbsp;";
            } else {
                echo 
    "<A HREF=\"index.php?sortby=zeit\">Datum</a>&nbsp;|&nbsp;";
            }

            if (
    $sortby == "autor") {
                echo 
    "&nbsp;|&nbsp;";
            } else {
                echo 
    "<A HREF=\"index.php?sortby=autor\">Autor</a>&nbsp;|&nbsp;";
            }
            
            if (
    $sortby == "hits") {
                echo 
    "&nbsp;|&nbsp;";
            } else {
                echo 
    "<A HREF=\"index.php?sortby=hits\">Hits</a>";
            }
            
            echo 
    " <b>]</b>\n</center>\n"// end of HTML

    PHP-Code:
    ############################################### 
    # Die Datensätze auf mehrere Seiten aufteilen 
    ###############################################     


        // Stellt fest ob eine Seitenzahl übermittelt worden ist 
        
    $_GET['p'] = (!isset($_GET['p']) || $_GET['p'] == || empty($_GET['p'])) ? $_GET['p'];    

    // Stellt fest ob eine Kategorie übermittelt worden ist     
        
    $_GET['k'] = (!isset($_GET['k']) || $_GET['k'] == || empty($_GET['k'])) ? $_GET['k'];    
        
        
    // Anzahl der Datensätze pro Seite 
        
    $perpage 5

        
    // Das obere und untere Limit 
        
    $limitlower = ($_GET['p']-1)*$perpage+1
        
    $limitupper $_GET['p'] * $perpage
     
         
    // Abfrage ausführen
        
        
    if($_GET['k']){
        
    $sql "SELECT a.dokid,a.catid,a.title,a.url,a.autor,a.abstract,a.zeit,a.lang,a.hits,b.catid ,b.cattitle   
                    FROM  dokument a INNER JOIN categories b 
                    USING (catid)
                    WHERE a.catid = 
    $_GET[k] ORDER BY a.catid,a.zeit DESC LIMIT ".($limitlower-1).",".$perpage;    
        } else {
        
    $sql "SELECT a.dokid,a.catid,a.title,a.url,a.autor,a.abstract,a.zeit,a.lang,a.hits,b.catid ,b.cattitle   
                    FROM  dokument a INNER JOIN categories b 
                    USING (catid)
                    WHERE a.catid = b.catid ORDER BY a.catid,a.zeit DESC LIMIT "
    .($limitlower-1).",".$perpage;
         }    
            
        
        
    // Enthält die Anzahl der gefundenen Datensätze 
        
    $sql_hits "select count(*) as hits from dokument ";
        if(
    $_GET['k']) $sql_hits.= " WHERE catid = $_GET[k] ";
        
        
    $r_sql_hits    mysql_query($sql_hits); 
        
    $r_sql         mysql_query($sql); 

        if(
    $r_sql){ 
        
    $hits mysql_fetch_row($r_sql_hits); 
        
    $hits $hits[0]; 
         
        
    $limitupper = ($limitupper $hits) ? $hits $limitupper
        
    $limitlower = ($limitlower $hits) ? $hits $perpage $limitlower
        
    $limitlower = ($limitlower <= 0) ? $limitlower

        if(
    $hits==0){ 
        echo 
    "<div align=\"center\">Keine Datensätze vorhanden</div>"
         
        } 
        else 
        { 
        
       
    // Ab Hier Ausgabe der Datensätze

    in der ruhe liegt die kraft
Lädt...
X