SQL Filterfrage

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

  • SQL Filterfrage

    Hallo,

    ich hab eine Frage bezüglich der Filter in der Select-SQL Abfrage.
    Falls der Benutzer keine Filter einstellt, sollen alle Datensätze angezeigt werden. Da dachte ich, muss man das Zeichen * als Suchzeichen einbauen.
    Zumindestens ist das so bei ACCESS. Hmmmm....

    Also hier der Code. Nur funktioniert das * nicht. Es gibt keine Datensätze.
    Wie muss denn der Syntax aussehen, um alle Datensätze anzeigen zulassen, solange vom User keine Eintragungen im Filter sind?


    PHP-Code:
    /*******************/
    /* Datenbank lesen */
    /*******************/

    //Verbindung zum MYSQL-Server Herstellen
    $conn mysql_connect("xxx","xxx","xxx");
    //Verbindung zur Datenbank herstellen
    $db mysql_select_db("proskating");
    //leerer Zeichenketten abfangen
    if (strlen($fontsearch)>1)
        {
        
    $fontsearch ltrim($fontsearch);
        
    $fontsearch chop($fontsearch);
        } else {
        
    $fontsearch "*";
        }
    if (
    strlen($customersearch)>1)
        {
        
    $customersearch ltrim($customersearch);
        
    $customersearch chop($customersearch);
        } else {
        
    $customersearch "*";
        }
    if (
    strlen($notesearch)>1)
        {
        
    $notesearch ltrim($notesearch);
        
    $notesearch chop($notesearch);
        } else {
        
    $notesearch "*";
        }
    //Sortierreihenfolge bestimmen
    if($fontsort==1$rs mysql_query('SELECT * FROM sodah_fonts ORDER BY feld1 WHERE feld1 LIKE '.$fontsearch.' AND kunde LIKE '.$customersearch.' AND bemerkung LIKE '.$notesearch$conn) or die ("&loaded=1");    
    else if (
    $kundensort==1$rs mysql_query('SELECT * FROM sodah_fonts ORDER BY kunde WHERE feld1 LIKE '.$fontsearch.' AND kunde LIKE '.$customersearch.' AND bemerkung LIKE '.$notesearch$conn) or die ("&loaded=1");
    else if (
    $bemerkungsort==1)$rs mysql_query('SELECT * FROM sodah_fonts ORDER BY bemerkung WHERE feld1 LIKE '.$fontsearch.' AND kunde LIKE '.$customersearch.' AND bemerkung LIKE '.$notesearch$conn) or die ("&loaded=1");
    else 
    $rs mysql_query('SELECT * FROM sodah_fonts WHERE feld1 LIKE '.$fontsearch.' AND kunde LIKE '.$customersearch.' AND bemerkung LIKE '.$notesearch$conn) or die ("&loaded=1");
    $anzahlzeilen mysql_num_rows($rs);            
    $anzahlspalten mysql_num_fields($rs);
    for (
    $x=0;$x<$anzahlspalten;$x++)
        {
        echo 
    "&feld".$x."=";
        for (
    $y=0;$y<$anzahlzeilen;$y++)
            {
            echo 
    mysql_result($rs$y$x);
            if (
    $y<$anzahlzeilen-1)
                { 
                echo 
    "¦";
                }
            }
        }
    echo 
    "&loaded=1";
    mysql_close($conn); 
    SODAH | JOERG KRUEGER
    WEBDESIGN: Wordpress Webdesign Mainz
    ACCESS: ACCESS Datenbank Mainz
    SHOUTCAST RADIO: FREE INTERNET WEB RADIO

  • #2
    Habs selber rausgefunden:

    PHP-Code:
    /*******************/
    /* Datenbank lesen */
    /*******************/

    //Verbindung zum MYSQL-Server Herstellen
    $conn mysql_connect("xxx","xxx","xxx");
    //Verbindung zur Datenbank herstellen
    $db mysql_select_db("proskating");
    //leerer Zeichenketten abfangen
    if (strlen($fontsearch)>0)
        {
        
    $fontsearch ltrim($fontsearch);
        
    $fontsearch chop($fontsearch);
        } else {
        
    $fontsearch "";
        }
    if (
    strlen($customersearch)>0)
        {
        
    $customersearch ltrim($customersearch);
        
    $customersearch chop($customersearch);
        } else {
        
    $customersearch "";
        }
    if (
    strlen($notesearch)>0)
        {
        
    $notesearch ltrim($notesearch);
        
    $notesearch chop($notesearch);
        } else {
        
    $notesearch "";
        }
    //Sortierreihenfolge bestimmen
    if($fontsort==1$rs mysql_query("SELECT * FROM sodah_fonts ORDER BY feld1 WHERE feld1 LIKE '%$fontsearch%' AND kunde LIKE '%$customersearch%' AND bemerkung LIKE '%$notesearch%'"$conn) or die ("&loaded=1");    
    else if (
    $kundensort==1$rs mysql_query("SELECT * FROM sodah_fonts ORDER BY kunde WHERE feld1 LIKE '%$fontsearch%' AND kunde LIKE '%$customersearch%' AND bemerkung LIKE '%$notesearch%'"$conn) or die ("&loaded=1");
    else if (
    $bemerkungsort==1)$rs mysql_query("SELECT * FROM sodah_fonts ORDER BY bemerkung WHERE feld1 LIKE '%$fontsearch%' AND kunde LIKE '%$customersearch%' AND bemerkung LIKE '%$notesearch%'"$conn) or die ("&loaded=1");
    else 
    $rs mysql_query("SELECT * FROM sodah_fonts WHERE feld1 LIKE '%$fontsearch%' AND kunde LIKE '%$customersearch%' AND bemerkung LIKE '%$notesearch%'"$conn) or die ("&loaded=1");
    $anzahlzeilen mysql_num_rows($rs);            
    $anzahlspalten mysql_num_fields($rs);
    for (
    $x=0;$x<$anzahlspalten;$x++)
        {
        echo 
    "&feld".$x."=";
        for (
    $y=0;$y<$anzahlzeilen;$y++)
            {
            echo 
    mysql_result($rs$y$x);
            if (
    $y<$anzahlzeilen-1)
                { 
                echo 
    "¦";
                }
            }
        }
    echo 
    "&loaded=1";
    mysql_close($conn); 
    Danke trotzdem. Sorry, für die fehlenden Zeilenumbrüche.
    SODAH | JOERG KRUEGER
    WEBDESIGN: Wordpress Webdesign Mainz
    ACCESS: ACCESS Datenbank Mainz
    SHOUTCAST RADIO: FREE INTERNET WEB RADIO

    Kommentar


    • #3
      wenn du alles haben willst, muss du den teil im WHERE weglassen oder eben % verwenden.

      *VERSCHIEB* nach sql
      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


      Kommentar


      • #4
        PHP-Code:
        if($fontsort==1$rs mysql_query("SELECT * FROM sodah_fonts... 
        Ich würde anstatt des * alle Felder angeben die ausgelesen werden sollen auch wenn es alle der Tabelle sind!!

        Es kann dann schneller verarbeitet werden.

        Kommentar


        • #5
          Danke für den Tipp der schnelleren Verarbeitung. Hab schon gemerkt, wie langsam die Abfrage geworden ist. Werde das jetzt mal umbauen.

          Gruß Jörg
          SODAH | JOERG KRUEGER
          WEBDESIGN: Wordpress Webdesign Mainz
          ACCESS: ACCESS Datenbank Mainz
          SHOUTCAST RADIO: FREE INTERNET WEB RADIO

          Kommentar

          Lädt...
          X