Suche Tutorial zum modifizieren einer Ergebnisliste

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

  • 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.
    Zuletzt geändert von 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!

    Kommentar


    • #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!

      Kommentar


      • #4
        Zitat von Besth Beitrag anzeigen
        hm wo denn genau?
        ich hab jetzt schon bissel rumgelesen aber bisher noch nix gefunden was zu meiner problematik passt
        Zitat von Besth Beitrag anzeigen
        ergebnis liste (bzw tabelle) aus mysql datenbank über mehrere tabellen
        Joins
        Zitat von Besth Beitrag anzeigen
        blätterfunktion
        Blättern
        Zitat von Besth Beitrag anzeigen
        anordnung (sortieren nach name, datum, etc)
        Joins (ist da enthalten)
        Zitat von Besth Beitrag anzeigen
        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

        Kommentar


        • #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!

          Kommentar


          • #6
            Zitat von Besth Beitrag anzeigen
            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]

            Kommentar


            • #7
              Zitat von Besth Beitrag anzeigen
              hm also suche und filtern bekomm ich eben nich alleine hin.
              Dann fehlen dir Grundlagen.
              Zitat von Besth Beitrag anzeigen
              also doch schon - aber irgendwie is der code nich schön ^^
              Wie sieht der denn aus?
              Zitat von Besth Beitrag anzeigen
              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

              Kommentar


              • #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
                Zuletzt geändert von Besth; 28.04.2010, 20:24.
                Mess with the Besth, die like the rest!

                Kommentar


                • #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
                  Zitat von Besth Beitrag anzeigen
                  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
                  Zuletzt geändert von 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]

                  Kommentar

                  Lädt...
                  X