Alphabetische Auflistung

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

  • Alphabetische Auflistung

    So nur ne kurze Frage. Ich weiß ist eigentlich sicher was einfaches aber bin grade müde und darum frag ich lieber hier.

    Wie lässt sich eine Alphabetische Auflistung am sinnvollsten umsetzen, am besten mit Zahlen.

    Also kurz gesagt z.B. wenn man mehrere reviews zu etwas hat soll dann oben

    A | B | C ............ usw.

    stehen. Aus der Datenbank soll er sich aus der Tabelle Reviews dann wenn man auf A klickt nur die Reviews anzeigen die im titel mit A beginnen.

    Denke mal ich habs einfach erklärt, hoffe es kennt sich jeder aus.

    Ganz interessant wäre dann noch dass es so ist das man nur die buchstaben anklicken kann wo es einen titel dazu finden, also wenn nichts unter C ist solls auch nicht anklickbar sein, aber das ist nur was zusätzliches was ganz nett wäre.

    Habe schon geschaut ob sich zu so ner Auflistung irgendwo was finden lässt hier im Forum , habe aber nicht wirklich was gefunden, von daher schonmal thx falls jemand ne Antwort drauf weiß.

  • #2
    im groben:

    liste:
    Code:
    <a href="?buchstabe=A">A</a>
    etc.,
    datensätze selektieren (z.b. mit mysql):
    Code:
    SELECT ... FROM ... WHERE `titel` LIKE 'A%'
    liefert z.b. alle datensätze, deren titel mit A beginnen.

    Kommentar


    • #3
      Den Teil habe ich noch kapiert, moment ich poste dir mal wie ichs gemacht habe bisher:

      PHP-Code:
      <a href="?show=reviews">ALLE</a> |
      <
      a href="?show=reviews&firstletter=A">A</a> |
      <
      a href="?show=reviews&firstletter=B">B</a> |
      <
      a href="?show=reviews&firstletter=C">C</a> | 
      usw (geht halt bist Z )


      PHP-Code:
      <?

      switch($firstletter) {
       case "A"; break;
       case "B"; break;
       case "C"; break;
       case "D"; break;
       case "E"; break;
       case "F"; break;
       case "G"; break;
       case "H"; break;
       case "I"; break;
       case "J"; break;
       case "K"; break;
       case "L"; break;
       case "M"; break;
       case "N"; break;
       case "O"; break;
       case "P"; break;
       case "Q"; break;
       case "R"; break;
       case "S"; break;
       case "T"; break;
       case "U"; break;
       case "V"; break;
       case "W"; break;
       case "X"; break;
       case "Y"; break;
       case "Z"; break;
       default: $firstletter = ""; break;
      }

      ?>


      <?php 
      $sql1
      ="SELECT * FROM reviews where kategorie='1' && title LIKE '$firstletter%' ORDER BY id";
      $data1=mysql_query($sql1$db);
      while (
      $row mysql_fetch_object ($data1)) {
      ?>

      auf diese art zeigt er mir allerdings egal auf welchen buchstaben ich grade klicke immer alles an, also irgendwas dran habe ich wohl noch falsch gemacht

      Kommentar


      • #4
        echo $sql1 liefert...?

        Kommentar


        • #5
          wenn ich das in den code schreibe gibt er mir das hier aus

          SELECT * FROM reviews where kategorie='anime' && title LIKE '%' ORDER BY id

          Kommentar


          • #6
            und was fällt dir auf?

            Kommentar


            • #7
              das er die variable scheinbar nicht übergibt

              Kommentar


              • #8
                bingo. warum?
                weil du nicht mit $_GET arbeitest, wie es sich gehört. und seltsame unnötige switch-konstrukte verwendest.

                Kommentar


                • #9
                  *g* ok werds mir mal anschauen, war auch nur mal schnell so gemacht grade, das es wesentlich bessere methoden sicher dafür gibt ist mir klar

                  auf jedenfall geht es nun, danke dir

                  p.s. habe zwar nicht soviel gelesen aber irgendwie taucht dein name recht oft auf, scheinst wohl einiges zu wissen (musste ich mal anmerken)

                  Kommentar


                  • #10
                    Ich habe da ein weiterführendes Problemchen...

                    Das Grundsystem funzt bei mir nun wunderbar. Nur habe ich später auch Einträge mit anderen Zeichen (0-9!"§$%&/(...........).

                    Kann ich die Abfrage auch so gestalten, dass der mir diese auf einmal liefert? Ich möchte ja nicht für jedes Zeichen einen eigenen Link machen.

                    Über jeden Tipp oder Hilfestellung freue ich mich.

                    Kommentar


                    • #11
                      z.b.
                      Code:
                      SELECT ... FROM ... WHERE `title` REGEXP [^a-zA-Z]
                      (oder so ähnlich - rtfm).

                      Kommentar


                      • #12
                        Danke für den Hinweis auf das Handbuch (habe nur 4 Stück davon hier auf dem Tischliegen in denen ich suche). Nur wenn ich nicht weiss, nach welchem Wort ich genau suchen muss hilft mir das kaum.

                        Daher danke ....

                        Kommentar


                        • #13
                          mit den zahlen und sonstigen zeichen habe ich auch noch probleme, hab zwar etwas versucht aber das geht nicht (was ich mir aber eh fast dachte dass es so nicht gehen wird)
                          das zweite was ich auch noch nicht hinbekomme ist dass es nen buchstaben nur anklickbar macht wenn auch daten drinnen vorhanden sind, weil es is irgendwie lästig wenn man z.B. auf C klickt aber es mit C eh garnichts gibt, wäre echt genial falls da irgendjemand ansätze hat oder sogar ne lösung weiß

                          Kommentar


                          • #14
                            mit den zahlen und sonstigen zeichen habe ich auch noch probleme, hab zwar etwas versucht aber das geht nicht (was ich mir aber eh fast dachte dass es so nicht gehen wird)
                            was ist denn mit meinem vorschlag?

                            das zweite was ich auch noch nicht hinbekomme ist dass es nen buchstaben nur anklickbar macht wenn auch daten drinnen vorhanden sind, weil es is irgendwie lästig wenn man z.B. auf C klickt aber es mit C eh garnichts gibt, wäre echt genial falls da irgendjemand ansätze hat oder sogar ne lösung weiß
                            da gibts was mit
                            Code:
                            SELECT LEFT(`title`, 1) AS erster_buchstabe GROUP BY erster_buchstabe
                            oder so ähnlich...

                            Kommentar


                            • #15
                              also das mit den zahlen dürfte ich nun kapieren, nur das andere nicht wirklich

                              mit dem gibt er mir doch nur dann in der ausgabe vom titel den ersten buchstaben von links des titels an oder sehe ich das falsch und ich brauch ja für die A bis Z Auflistung dass es wenn im der tabelle im feld title ein Wort mit Buchstabe H ist dass H in der Auflistung anklickbar ist, usw.

                              wenn zu nen buchstaben kein Wort mit dem anfangsbuchstaben existiert wird der Buchstabe angezeigt aber ohne hyperlink

                              vielleicht ist
                              SELECT LEFT(`title`, 1) AS erster_buchstabe GROUP BY erster_buchstabe
                              das aber eh richtig so und ich war nur grade nicht fähig das einzubauen das es so geht, werds mir morgen wieder ansehen, für heute muss ich erstmal dann pennen gehen

                              Kommentar

                              Lädt...
                              X