Sortierungsproblem

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

  • Sortierungsproblem

    hallo,

    ich habe hier eine kleine datei, die newsadmin.php heisst. bisher ist die sortierung nach datum, das neuste oben. ich möchte aber nun hinter die überschriften (autor, betreff und datum) jeweils einen pfeil hoch und runter machen. soll ne kleine gif grafik sein. die bilder werden zu links, soweit bin ich auch schon.

    aber wie sieht nun der linkbefehl aus und vorallem was fehlt mir noch im skript?

    wäre toll wenn mir da einer bei helfen könnte.

    PHP-Code:
    <?
    include("config.inc.php");
    include("datenbank.inc.php");
    $abfrage = "SELECT * from $tabelle order by datum desc";
    echo <<<ABC
    <table>
            <tr>
                    <td colspan="2"><br></td>
                    <td width="180"><b>Autor</b></td>
                    <td width="180"><b>Betreff</b></td>
                    <td width="180"><b>Datum</b></td>
            </tr>
    ABC;
    $result = mysql_query($abfrage,$conn);
    while ($row = mysql_fetch_array ($result))
    {
    $datum = $row["datum"];
    $autor = $row["autor"];
    $betreff = $row["betreff"];
    $datum1 = date("d.m.Y",$datum);

    echo <<<BCD
    <tr>
            <td><a href="newsadmin.php?action=loeschen&datum=$datum&betreff=$betreff"><img src="loeschen.gif" border="0" alt="löschen"></a></td>
            <td><a href="newsadmin.php?action=aendern&datum=$datum"><img src="edit.gif" border="0" alt="ändern"></a></td>
            <td>$autor<br></td>
            <td>$betreff<br></td>
            <td>$datum1<br></td>
    </tr>
    BCD;
    }
    echo "</table>";
    mysql_free_result($result);
    mysql_close($conn);

    ?>
    http://www.nanc-angel.de

  • #2
    also, für sowas sollte man nur mal ein bisschen nachdenken.

    du hast diese abfrage:
    PHP-Code:
    $abfrage "SELECT * from $tabelle order by datum desc"
    das desc ist für ab, also ist asc für auf.

    das gibst du dann also als parameter:

    page.php?order=asc // bzw desc

    und das musst du nur da reinsetzen.

    wie das geht, sollte wohl klar sein.

    BTW: dass du das vorher noch n bisschen abprüfst, sollte klar sein!

    Kommentar


    • #3
      hallo tobiaz

      das ging ja mal schnell mit einer antwort.

      ich habe das gerade mal ausprobiert, doch es hat leider bisher keine wirkung.

      mein skript ist immernoch unverändert, wie ich es gepostet habe.

      wo meine abfrage liegt, hatte ich schon verstanden, den untersched zwischen asc unds desc auch. aber ich brauche denoch einen kleinen schups.

      du hast geschrieben das so der befel ca. aussehen müsste: page.php?order=asc. da ist aber noch nicht angegeben was es auf, bzw. abwärts sortieren soll.
      da steckt ja nun genau mein problem. und wie meintest du das mit den prüfungen?
      http://www.nanc-angel.de

      Kommentar


      • #4
        lass die prüfungen erstmal weg, du sollst ja erstmal das prinzip verstehen.

        also willst du nicht nur das feld datum sortieren, sondern ggf auch noch überschrift oder so.

        dann noch mal: deine abfrage
        PHP-Code:
        $abfrage "SELECT * from $tabelle order by datum desc"
        du musst jetzt nur desc durch eine variable sinnigerweise die aus der URL, die ich eben gepostet habe ersetzen. dann kannst du schon mal auf/absteigend sortiert werden. wenn du jetzt noch nach betreff (z.B. sortieren willst, dann ersetzt du das "datum" auch noch durch eine Variable. udn übergibst in der url auch noch &feld=datum.

        Kommentar


        • #5
          meine fresse, das habe ich gerade hinbekommen.

          vielen vielen dank tobiaz.
          http://www.nanc-angel.de

          Kommentar


          • #6
            wo kann mans sehen?

            Kommentar


            • #7
              hier ein link: klick
              http://www.nanc-angel.de

              Kommentar


              • #8
                Ich würde aber mindestens noch ein weiteres Sortierkriterium hinzufügen, wenn du z.B. nach Datum sortierst, sind die Namen durcheinander.
                it's not a bug,
                it's a feature!

                Kommentar


                • #9
                  deswegen sortiert er ja nach datum

                  naja, wenns sinnmacht, könnte man das machen.

                  Kommentar


                  • #10
                    @TobiaZ
                    Dann Sortier mal nach Datum, so dass der 23. oben steht.
                    Dann sieh dir mal die Namen an. Du wirst feststellen, dass x... vor A... steht.
                    Deshalb meinte ich ein "ORDER BY datum, name".

                    Hoffe Du verstehst mich jetzt.
                    it's not a bug,
                    it's a feature!

                    Kommentar


                    • #11
                      hallo xgremlin,

                      die idee von dir finde ich sehr gut. was müsste ich den ausser meinem link ändern?

                      bisher sieht der ja bsp.. so aus:


                      PHP-Code:
                      <a href="newsadmin.php?action=verwalten&order=asc&feld=datum"
                      http://www.nanc-angel.de

                      Kommentar


                      • #12
                        Bei deinem Link noch ein &feld2=name anhängen.
                        Dann feld und feld2 in einen array einlesen,
                        dann mit implode(", ", $dein_array); das Komma dazwischen bringen
                        und in eine Variable speichern,
                        die du dann als Sortierkriterium einbindest.
                        it's not a bug,
                        it's a feature!

                        Kommentar


                        • #13
                          hui,

                          langsamer,

                          also hinter meinem link habe ich das &feld2=autor angehängt, sieht jetzt so aus:

                          PHP-Code:
                          <a href="newsadmin.php?action=verwalten&order=asc&feld=datum&feld2=autor"
                          nun versage ich kläglich, wie und wo mache ich das array, ist noch neuland für mich
                          http://www.nanc-angel.de

                          Kommentar


                          • #14
                            Dann machst du
                            PHP-Code:
                            $neu = array($feld$feld2); 
                            Und jetzt noch:
                            PHP-Code:
                            $sortieren=implode(", "$neu); 
                            Nun noch bei deinem SELECT hinter ORDER BY die Variable $sortieren eintragen.

                            Fertig.
                            it's not a bug,
                            it's a feature!

                            Kommentar


                            • #15
                              das würd ich erst im code machen. da der zweite vom ersten abhängig ist, braucht man den ja nicht anzuhängen:

                              .php?feld=datum

                              if($_GET['feld'] == datum)
                              $sort = 'datum, autor';

                              Kommentar

                              Lädt...
                              X