Sortierung

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

  • Sortierung

    Hallo,

    bitte nicht seufzen, da ich schon wieder mal ne Frage habe.

    Folgendes Ich lese Daten aus der Datenbank in einer Tabelle aus.

    So sieht die Tabelle beim User aus:

    Name | Adresse | usw....
    -------------------------------
    Klaus | Adresse1| .......
    Max |Adresse3| ......
    Franz |Adresse2|......


    Ich sortiere bei der Abfrage schon auf ID.

    Nun möchte ich aber, wenn der User auf die Tabellenüberschrift klickt, dass dann die Daten entweder absteigend oder aufsteigend Sortiert werden.

    So frage ich zur Zeit die Daten aus der DB ab.

    Code:
    ........
    $result1 = mysql_query("select * from zukunftsinvestments order by
    ID desc limit $start,100");
    ................
    
    .............
    <tr>    
    <td>font color="#FFFFFF">Name</font></span></td>
    <td>font color="#FFFFFF">Adresse</font></span></td>
    </tr>
    .................
    (Das sind die Überschriften der Tabelle)
    
    .................
    <?php
    while($row = mysql_fetch_array($result1))
    {
    $feld1 = $row['Name'];
    $feld2 = $row['Adresse'];
    ?>
    
    <tr>   
        <td><?=$feld1?></td>
        <td><?=$feld2?></td>
    </tr>
    
    <?php
    }
    ?>
    ......................
    (Hier werden dann die Daten aufgezeigt)
    LG, m-werk

  • #2
    Re: Sortierung

    Original geschrieben von m-werk
    Nun möchte ich aber, wenn der User auf die Tabellenüberschrift klickt, dass dann die Daten entweder absteigend oder aufsteigend Sortiert werden.
    Also bringst du dort einen Link mit GET-Parameter an, der deinem Script mitteilt, welche Art und Richtung von Sortierung gewünscht ist.
    Und dann baust du eben diese dynamisch in deine Query ein.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      einfach ein Link in die Tabellenüberschriften das ganze mit GET übergeben

      z.B ?sort=ASC


      und denn die syntax mit DESC oder ASC ausstatten.
      Mit freundlichen Worten und einer Waffe erreicht man mehr als mit einem freundlichen Wort allein.

      Kommentar


      • #4
        tut mir leid, ich schnalls nicht.
        LG, m-werk

        Kommentar


        • #5
          was genau schnallst du nicht?
          in deiner abfrage steht "desc" was deine tabelle absteigend nach id ausgibt.
          du muss ein functionalität einbieten, der deine tabelle absteigend=DESC
          oder aufsteigend=ASC ausgiebt.
          und vista hat dir vorgeschlagen ein link zu machen, bei dem ein parameter
          sort zwei werte annemen kann asc oder desc.
          bei bilden von deinem sql querys steckst du dieser parameter rein und bekommst die richtige Ausgabe.
          Slava
          bituniverse.com

          Kommentar


          • #6
            Hallo nach einigen Versuchen bin ich nun auf folgendes Ergebniss gestoßen, leider bekomme ich jetzt überhaupt keine daten zu sehen.

            So sieht der Link in der Tabellenüberschrift aus:

            Code:
            <a href="<? echo $_SERVER[PHP_SELF]?>?sort=<? echo $ordnen; ?>
            &spal=Nachname">Name <? echo $ausgabe;?></a>
            So sieht mein Code für die Sortierung aus:

            PHP-Code:
            $strsort $_GET[sort]; 
            if(empty(
            $strsort)){ 
                
            $strsort ="asc"
                
            $ordnen "desc"
                
            $ausgabe "Aufsteigend"
            } else if (
            $strsort=="asc") { 
                
            $ordnen="desc"
                
            $ausgabe "Aufsteigend"
            } else if (
            $strsort=="desc") { 
                
            $ordnen="asc"
                
            $ausgabe "Absteigend"

            und soe sieht nun die Abfrage aus der DB aus, die am anfang der Seite steht:

            PHP-Code:
            $result1 mysql_query("select * from zukunftsinvestments order by $spal
             
            $strsort limit $start,100"); 
            Leider funktioniert das nicht so. Ich kann zwar die Überschrift anklicken aber es erscheinen keine Daten.
            LG, m-werk

            Kommentar


            • #7
              Original geschrieben von m-werk
              So sieht mein Code für die Sortierung aus:
              PHP-Code:
              $strsort $_GET[sort]; 
              if(empty(
              $strsort)){ 
                  
              $strsort ="asc"
                  
              $ordnen "desc"
                  
              $ausgabe "Aufsteigend"
              } else if (
              $strsort=="asc") { 
                  
              $ordnen="desc"
                  
              $ausgabe "Aufsteigend"
              } else if (
              $strsort=="desc") { 
                  
              $ordnen="asc"
                  
              $ausgabe "Absteigend"

              Doppelt gemoppelt hält aber nicht immer besser

              PS: Es empfiehlt sich diese Schreibweise in einer query zu benutzen: SELECT * FROM bla ORDER BY bla DESC oder ASC
              Zuletzt geändert von boris-schneider; 03.05.2006, 13:53.

              Kommentar


              • #8
                Wenn ich im select order by desc nehme, kann ich nur ein Datenfeld sortieren.

                Ich möchte aber in der Tabelle mehrere Datenfelder sortieren z.B. Nachname, Adresse usw.

                Ich checks einfach nicht.
                LG, m-werk

                Kommentar


                • #9
                  Original geschrieben von m-werk
                  Ich möchte aber in der Tabelle mehrere Datenfelder sortieren z.B. Nachname, Adresse usw.
                  Dann machst du halt in der Tabelle über jedes Feld einen entsprechenden Link hin der dann entweder auf oder ab sortiert oO

                  Sobald du zb. alles nach Namen Aufwärts sortieren lässt gleichen sich ja alle anderen ausgaben mit an. Und so wie du es gemacht hast mit den hintereinanderliegenden GET werten ist das doch völlig korrekt!

                  Schau dir am besten nochmal dein letztes Script an was du gepostet hast und du wirst den Fehler erkennen
                  Zuletzt geändert von boris-schneider; 03.05.2006, 14:00.

                  Kommentar


                  • #10
                    Und wie soll ich das anstellen?

                    So sieht die Tabelle aus:

                    Code:
                      <tr>
                        <td><img src="../../images/spacer.gif" width="250" height="5"></td>
                        <td><img src="../../images/spacer.gif" width="180" height="5"></td>
                        <td><img src="../../images/spacer.gif" width="160" height="5"></td>
                        <td><img src="../../images/spacer.gif" width="40" height="5"></td>
                        <td><img src="../../images/spacer.gif" width="100" height="5"></td>
                        <td width="9%"><img src="../../images/spacer.gif" width="120" height="5"></td>
                        <td><img src="../../images/spacer.gif" width="60" height="5"></td>
                      </tr>
                      <tr bgcolor="#0000FF">
                        <td class="TextnormalFETT"><span class="Stil11"><font color="#FFFFFF">Firma</font></span></td>
                    	<td class="TextnormalFETT"><span class="Stil11"><font color="#FFFFFF">Name</font></span></td>
                        <td class="TextnormalFETT"><span class="Stil11"><font color="#FFFFFF">Adresse</font></span></td>
                        <td class="TextnormalFETT"><div align="center"><span class="Stil11"><font color="#FFFFFF">E-Mail
                    </font></span></div></td>
                        <td class="TextnormalFETT"><span class="Stil11"><font color="#FFFFFF">Telefon</font></span></td>
                        <td class="TextnormalFETT"><span class="Stil11"><font color="#FFFFFF">Vermittler
                              / Nummer</font></span></td>
                        <td class="TextnormalFETT Stil1 Stil11">Ort</td>
                      </tr>
                      <?php
                    while($row = mysql_fetch_array($result1))
                    {
                    $feld1 = $row['ID'];
                    $feld2 = $row['Firma'];
                    $feld3 = $row['Anrede'];
                    $feld4 = $row['Nachname'];
                    $feld5 = $row['Vorname'];
                    $feld6 = $row['Adresse'];
                    $feld7 = $row['plz'];
                    $feld8 = $row['Ort'];
                    $feld9 = $row['Email'];
                    $feld10 = $row['Telefon'];
                    $feld11 = $row['Nummer'];
                    $feld12 = $row['VOrt'];
                    $feld13 = $row['Titel'];
                    $feld14 = $row['Vertrieb'];
                    ?>
                      <?php  
                    if ( $zeile++ % 2 == 0) 
                    $hgf = "silver";
                    else
                    $hgf = "";
                    ?>
                      <tr>
                        <td bgcolor="<? echo $hgf?>"><span class="Stil15">
                          <?=$feld2?>
                        </span></td>
                        <td bgcolor="<? echo $hgf?>"><span class="Stil15">
                          <?=$feld3?>
                    	  <?=$feld13?>
                          <?=$feld4?>
                    	  <?=$feld5?>
                        </span></td>
                        <td bgcolor="<? echo $hgf?>"><span class="Stil15">
                          <?=$feld6?>
                          <br>
                          <?=$feld7?>
                          <?=$feld8?>
                        </span></td>
                        <td bgcolor="<? echo $hgf?>"><div align="center"><span class="Stil15">
                            <?
                    			if (!$feld9 == "")
                    			echo '<a href="mailto:'.$feld9.'"><img src="../../images/emailButton.png" border="0"
                     alt="'.$feld9.'"></a>';
                    			?>
                        </span></div></td>
                        <td bgcolor="<? echo $hgf?>"><span class="Stil15">
                          <?=$feld10?>
                        </span></td>
                        <td bgcolor="<? echo $hgf?>"><span class="Stil15">
                          <?=$feld14?> / <?=$feld11?>
                        </span></td>
                        <td bgcolor="<? echo $hgf?>"><span class="Stil15">
                          <?=$feld12?>
                        </span></td>
                      </tr>
                      <?php
                    }
                    ?>
                    LG, m-werk

                    Kommentar


                    • #11
                      Das hier nur mal so als Denkanstoss!

                      PHP-Code:
                      function ordnen($sort)
                      {
                        if(
                      $sort !== 'ASC')
                        {
                          
                      $status 'ASC';
                        }else{
                          
                      $status 'DESC';
                        }
                      return 
                      $status;
                      }

                      $sort $_GET['sort'];
                      echo 
                      '
                            <tr bgcolor="#0000FF">
                              <td class="TextnormalFETT"><span class="Stil11"><font color="#FFFFFF">
                              <a href="index.php?sort='
                      .ordnen($sort).'&spal=Firma">Firma</a></font></span></td>
                              <td class="TextnormalFETT"><span class="Stil11"><font color="#FFFFFF">
                              Name</font></span></td>
                              <td class="TextnormalFETT"><span class="Stil11"><font color="#FFFFFF">
                              Adresse</font></span></td>
                              <td class="TextnormalFETT"><div align="center"><span class="Stil11">
                              <font color="#FFFFFF">E-Mail</font></span></div></td>
                              <td class="TextnormalFETT"><span class="Stil11">
                                <font color="#FFFFFF">Telefon</font></span></td>
                              <td class="TextnormalFETT"><span class="Stil11">
                              <font color="#FFFFFF">Vermittler / Nummer</font></span></td>
                              <td class="TextnormalFETT Stil1 Stil11">Ort</td>
                            </tr>
                      '

                      Zuletzt geändert von boris-schneider; 03.05.2006, 14:45.

                      Kommentar


                      • #12
                        Hallo, hab nun versucht, diesen Vorschlag umzusetzen. Es kommt aber immer noch kein Ergebniss:

                        Muss ich denn die Variable $spal nicht noch irgendwie und irgendwo deklarieren?

                        Denn in der Select Abfrage wird ja nach $spal abgefragt.

                        Ich muss doch vorher schon sagen, was $spal ist oder?
                        LG, m-werk

                        Kommentar


                        • #13
                          Blöder vorschlag von mir, aber versuche es doch einfach mal selbst !?
                          Ich denke hier wurden schon genug vorschläge und "offensichtliche" Lösungen gezeigt, mit denen lässt sich das doch Prima fertig stellen.

                          Ich klinke mich dann auch mal aus, viel Glück dabei!

                          Sers
                          Der Boris
                          Zuletzt geändert von boris-schneider; 03.05.2006, 14:47.

                          Kommentar


                          • #14
                            SORTIERUNG FUNKTIONIERT WIE GEWÜNSCHT

                            So, ich habs nun geschafft. Jetzt geht die sortierung. Ich habe nur eine kleinichkeit vergessen gehabt. Nach langem herumtüfteln funktionierts nun.

                            Eine kleinichkeit habe ich aber noch:

                            Es ist bei mir ein Button (aufsteigend und absteigend) der angeklickt werden muss, damit sortiert wird.

                            Der Button wird richtig angezeigt nur leider hat diese gif-Grafik einen violetten Rahmen. Den bekomme ich leider nicht weg.

                            Wie bekomme ich diesen weg?

                            Anbei der Code-auszug:

                            PHP-Code:
                            <?php
                            $ordnen 
                            "asc"
                            $linktext "<img src=asc.gif alt=aufsteigend>";
                             
                                 
                            if(
                            $strsort == "asc"){ 
                            $linktext "<img src=desc.gif alt=absteigend>"
                            $ordnen"desc"
                            }  
                            ?>
                            und nun der link, wo ich sortiere:

                            Code:
                                    <td class="TextnormalFETT"><span class="Stil11"><font color="#FFFFFF">Name
                            <a href="<?php echo $_SERVER['PHP_SELF']?>?sort=<?php echo
                             $ordnen ?>&feld=Nachname"><?php echo $linktext ?></a> 
                            </font></span></td>
                            Wie kann man das noch wegbekommen?

                            Ich habe auch schon in den Seiteneinstellungen alles geändert aber es geht bei diesen Buttons nicht weg. Es wird immer als link symbolisiert.

                            LG, m-werk
                            LG, m-werk

                            Kommentar


                            • #15
                              <img src="asc.gif" alt="aufsteigend" border="0">

                              http://de.selfhtml.org/html/grafiken...den.htm#rahmen
                              Zuletzt geändert von hall; 04.05.2006, 09:09.
                              mfg

                              Kommentar

                              Lädt...
                              X