Suche Tutorial zum modifizieren einer Ergebnisliste

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Suche Tutorial zum modifizieren einer Ergebnisliste

    Hallo,
    ich suche eine Anleitung wo gut erklärt wird, wie man _sinnvoll_ und mit _guten_ code folgende features löst:

    ergebnis liste (bzw tabelle) aus mysql datenbank über mehrere tabellen
    blätterfunktion
    filtern (nur bestimmte kategorien anzeigen)
    anordnung (sortieren nach name, datum, etc)
    suche (nur bestimmte - vom user gesuchte - sachen anzeigen -- die filter und sortierungen sollten hier auch anwendung finden)

    ich hoffe das ist einigermaßen verständlich was ich suche
    Mess with the Besth, die like the rest!

  • #2
    Vieles - wenn nicht gar alles - von dem was du suchst, findest du auf Peter Kropff - Home

    EDIT:
    Uups - war auf zitieren statt antworten.
    Last edited by Quetschi; 28-04-2010, 15:54.
    Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
    Schön - etwas Geschichte kann ja nicht schaden.
    Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

    Comment


    • #3
      hm wo denn genau?
      ich hab jetzt schon bissel rumgelesen aber bisher noch nix gefunden was zu meiner problematik passt
      Mess with the Besth, die like the rest!

      Comment


      • #4
        Originally posted by Besth View Post
        hm wo denn genau?
        ich hab jetzt schon bissel rumgelesen aber bisher noch nix gefunden was zu meiner problematik passt
        Originally posted by Besth View Post
        ergebnis liste (bzw tabelle) aus mysql datenbank über mehrere tabellen
        Joins
        Originally posted by Besth View Post
        blätterfunktion
        Blättern
        Originally posted by Besth View Post
        anordnung (sortieren nach name, datum, etc)
        Joins (ist da enthalten)
        Originally posted by Besth View Post
        filtern (nur bestimmte kategorien anzeigen)
        suche (nur bestimmte - vom user gesuchte - sachen anzeigen -- die filter und sortierungen sollten hier auch anwendung finden)
        Einfach alles lesen. Dann kannst du das von alleine.

        Peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Comment


        • #5
          hm also suche und filtern bekomm ich eben nich alleine hin.
          also doch schon - aber irgendwie is der code nich schön ^^
          deswegen hatte ich ja angefragt ob da jemand nen gutes tutorial kennt oder beispiel
          Mess with the Besth, die like the rest!

          Comment


          • #6
            Originally posted by Besth View Post
            aber irgendwie is der code nich schön ^^
            Du könntest ihn immer noch posten, dann kann man dir Verbesserungsvorschläge unterbreiten, Design Patterns empfehlen etc.

            Gruß,

            Amica
            [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
            Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
            Super, danke!
            [/COLOR]

            Comment


            • #7
              Originally posted by Besth View Post
              hm also suche und filtern bekomm ich eben nich alleine hin.
              Dann fehlen dir Grundlagen.
              Originally posted by Besth View Post
              also doch schon - aber irgendwie is der code nich schön ^^
              Wie sieht der denn aus?
              Originally posted by Besth View Post
              deswegen hatte ich ja angefragt ob da jemand nen gutes tutorial kennt oder beispiel
              Klingt für mich nach "ich habe keine Ahnung und suche fertigen Code".

              Sorry, aber ich habe den Eindruck, dass du weder über das entsprechende Wissen noch über die notwenige Geduld verfügst, um dir das entsprechende Knowhow anzueignen.

              Peter
              Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
              Meine Seite

              Comment


              • #8
                ich wollte mir einfach mal angucken wie andere leute sowas lösen ich habs so gemacht, aber irgendwie gefällt es mir nich:

                PHP Code:
                        $order ""$orderurl ""$filter ""$suche "";
                        if ( isset(
                $_GET['fstatus']) ) { $fstatus $_GET['fstatus']; } else { $fstatus ""; }
                        
                        if( isset(
                $_GET['order']) ) {
                          if ( 
                $_GET['order'] == "statusup" ) { $order .= "status ASC"$orderinfo "Status <img src='images/up.png'>"; }
                          if ( 
                $_GET['order'] == "statusdown" ) { $order .= "status DESC"$orderinfo "Status <img src='images/down.png'>"; }
                          if ( 
                $_GET['order'] == "datumup" ) { $order .= "date_create ASC"$orderinfo "Datum <img src='images/up.png'>"; }
                          if ( 
                $_GET['order'] == "datumdown" ) { $order .= "date_create DESC"$orderinfo "Datum <img src='images/down.png'>"; }
                          if ( 
                $_GET['order'] == "prioup" ) { $order .= "prio ASC"$orderinfo "Priorit&auml;t <img src='images/up.png'>"; }
                          if ( 
                $_GET['order'] == "priodown" ) { $order .= "prio DESC"$orderinfo "Priorit&auml;t <img src='images/down.png'>"; }
                          if ( 
                $_GET['order'] == "titelup" ) { $order .= "titel ASC"$orderinfo "Titel <img src='images/up.png'>"; }
                          if ( 
                $_GET['order'] == "titeldown" ) { $order .= "titel DESC"$orderinfo "Titel <img src='images/down.png'>"; }
                        }

                        if( 
                $fstatus != "" ) {
                          
                $teile explode("%",$fstatus);
                          for(
                $i=0;$i<count($teile);$i++) {
                            
                $filter .= "status = '".$teile[$i]."'";
                            if ( 
                count($teile) > AND $i count($teile)-) { $filter .= " OR "; }
                          }
                        }

                        if ( isset(
                $_GET['suche']) ) {
                          
                $suche $_GET['suche'];
                          
                $filter .= "titel LIKE '%".$suche."%' OR beschreibung LIKE '%".$suche."%'";
                        }

                        if ( 
                $order == "" ) { $order "status ASC"$orderinfo "Status <img src='images/up.png'>"; }
                        if ( 
                $filter != "" ) { $filter "WHERE ".$filter; }

                        if ( 
                $fstatus == "1%2%3" OR $fstatus == "" ) { echo "alle | "; } else { 
                echo 
                "<a href='doku.php?action=aufgabe&fstatus=1%2%3'>alle</a> | "; }
                        if ( 
                $fstatus == "1" ) { echo "nur offen | "; } else { 
                echo 
                "<a href='doku.php?action=aufgabe&fstatus=1'>nur offen</a> | "; }
                        if ( 
                $fstatus == "1%2" ) { echo "offen und wartend | "; } else { 
                echo 
                "<a href='doku.php?action=aufgabe&fstatus=1%2'>offen und wartend</a> | "; }
                        if ( 
                $fstatus == "3" ) { echo "geschlossen | "; } else { 
                echo 
                "<a href='doku.php?action=aufgabe&fstatus=3'>geschlossen</a> | "; }
                        echo 
                "geordnet nach: ".$orderinfo;
                        if ( 
                $suche != "" ) {
                          echo 
                " | Suche nach: ".$suche;
                        }
                        echo 
                "<br><br>";

                        echo 
                "<table class='weit'>";
                        echo 
                "  <tr>";
                        echo 
                "    <td><a href='doku.php?action=aufgabe&fstatus=".$fstatus."&order=".
                (isset(
                $_GET['order'])?($_GET['order']=='datumup'?'datumdown':'datumup'):'datumdown')."'>Datum</a>
                <a href='doku.php?action=aufgabe&fstatus="
                .$fstatus."&order=datumup'><img src='images/up.png'></a>
                <a href='doku.php?action=aufgabe&fstatus="
                .$fstatus."&order=datumdown'><img src='images/down.png'></a></td>";
                        echo 
                "    <td><a href='doku.php?action=aufgabe&fstatus=".$fstatus."&order=".
                (isset(
                $_GET['order'])?($_GET['order']=='statusup'?'statusdown':'statusup'):'statusdown')."'>Status</a> 
                <a href='doku.php?action=aufgabe&fstatus="
                .$fstatus."&order=statusup'><img src='images/up.png'></a>
                <a href='doku.php?action=aufgabe&fstatus="
                .$fstatus."&order=statusdown'><img src='images/down.png'></a></td>";
                        echo 
                "    <td><a href='doku.php?action=aufgabe&fstatus=".$fstatus."&order=".
                (isset(
                $_GET['order'])?($_GET['order']=='prioup'?'priodown':'prioup'):'prioup')."'>Priorit&auml;t</a> 
                <a href='doku.php?action=aufgabe&fstatus="
                .$fstatus."&order=prioup'><img src='images/up.png'></a>
                <a href='doku.php?action=aufgabe&fstatus="
                .$fstatus."&order=priodown'><img src='images/down.png'></a></td>";
                        echo 
                "    <td><a href='doku.php?action=aufgabe&fstatus=".$fstatus."&order=".
                (isset(
                $_GET['order'])?($_GET['order']=='titelup'?'titeldown':'titelup'):'titelup')."'>Titel</a> 
                <a href='doku.php?action=aufgabe&fstatus="
                .$fstatus."&order=titelup'><img src='images/up.png'></a>
                <a href='doku.php?action=aufgabe&fstatus="
                .$fstatus."&order=titeldown'><img src='images/down.png'></a></td>";
                        echo 
                "    <td>Aktionen</td>";
                        echo 
                "    <td>Minuten</td>";
                        echo 
                "    <td>letzte Aktion</td>";
                        echo 
                "  </tr>";
                        
                        
                $sql "SELECT * FROM ".MYSQL_PREFIX."aufgaben ".$filter." ORDER BY ".$order.";"
                ich hoffe ma das is bissel verständlich - mein codegebastel da xD
                Last edited by Besth; 28-04-2010, 20:24.
                Mess with the Besth, die like the rest!

                Comment


                • #9
                  Ich würde mir den ganzen if-Kram am Anfang schon dadurch sparen, dass ich die Informationen zur Sortierspalte und zur Sortierrichtung getrennt übergebe, z. B.
                  http://example.com/doku.php?order=status&isDesc=0
                  oder
                  http://example.com/doku.php?order=datum&isDesc=1
                  Im PHP-Code würde ich dann $_GET["order"] mittels in_array prüfen, ob nur erlaubte Werte benutzt wurden, um SQL-Injections entgegenzuwirken.

                  Dann würde ich den Code vernünftig einrücken und umbrechen, was ihn ja im engsten Sinne
                  Originally posted by Besth View Post
                  schön
                  machen würde.

                  Außerdem würde ich niemals % als Trennzeichen in einer URL verwenden, weil es im Zusammenhang mit URL-Encoding eine Sonderbedeutung hat. Warum nicht das Komma, Semikolon etc?

                  Den echo-Fasching ganz unten könnte man aufgrund der massiven Wiederholungen mit dem ersten genannten Punkt und einer Schleife über die möglichen Sortierspalten säubern.

                  Bedingungen fasse ich soweit wie möglich zusammen, so dass entweder gerade noch die Logik erkennbar ist oder andernfalls ein Kommentar aufklärt, was gemeint ist. Auf deinen Code bezogen, würde ich aus
                  PHP Code:
                  (isset($_GET['order'])?($_GET['order']=='datumup'?'datumdown':'datumup'):'datumdown'
                  sowas machen:
                  PHP Code:
                  (!isset($_GET['order']) || $_GET['order'] == 'datumup' 'datumdown' 'datumup'
                  Ist aber nur als Beispiel zu verstehen, weil das ja auch durch Punkt 1 hinfällig werden würde.

                  Gruß,

                  Amica
                  Last edited by AmicaNoctis; 28-04-2010, 21:49.
                  [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                  Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                  Super, danke!
                  [/COLOR]

                  Comment

                  Working...
                  X