abfrage aus sql tabelle

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

  • abfrage aus sql tabelle

    hallo

    ich habe einen code geschriebne mit dem ich text aus einer sql tabelle lesen möchte. Das Problem ist aber das ich immer einen Fehler bekomme wenn ich als sql befehl "..WHERE buchstabe = A" eintippe. Und 2tes Problem: Wie kann ich das so machen, dass jedesmal, wenn ein neuer Buchstabe anfängt, dieser sozusagen als "Überschrift da ist, also in etwa so:

    A
    a..
    a...
    a...

    B
    b..
    b...
    b...

    ...

    ?

    Hier der Code:

    PHP-Code:

    <?
     $verbindung = mysql_connect("localhost", "root", "");
     if($verbindung)
     {
      $ergebnis = mysql_select_db("cms", $verbindung);
      if($ergebnis)
      {
       $sql = "SELECT * FROM reviews ORDER BY buchstabe ASC buchstabe = A";
       $ergebnis = mysql_query($sql, $verbindung);
       if($ergebnis)
       {
       echo "<table><tr><td width=50><b>A</b></td></tr></table>\n";
       echo "<table>\n";
        while ($inhalt = mysql_fetch_array($ergebnis))
        {
         echo "<tr>\n";
         echo "<td>\n";
         echo "<a href='manga_review.php?id=$inhalt[id]'>$inhalt[review_name]</a>\n";
         echo "</td>\n";
         echo "</tr>\n";
        }
       echo "</table>\n";

       mysql_free_result($ergebnis);
       }
       else echo "Abfrage $sql konnte nicht ausgeführt werden<br>\n";
      }
      else echo "datenbank konnte nicht ausgewählt werden<br>\n";
      mysql_close();
     }
     else echo "Verbindung konnte nicht hergestellt werden<br>\n";
     
     
     
     

    ?>

  • #2
    Vorsicht

    Achtung, das ist gefährlich und sträflich. Niemals den root-User OHNE Passwort benutzen. IMMER ein Passwort zuweisen.
    Am besten aber immer einen anderen User einrichten. "root" sollte nur für administrative Zwecke sein.

    Ansonsten ist deine SQL-Syntax falsch:

    $sql = "SELECT * FROM reviews WHERE buchstabe='A' ORDER BY buchstabe ASC";

    und das mit dem Anfangsbuchstaben macht man bei der Ausgabe-Schleife per PHP -> sich merken, welcher Buchstabe gerade dran ist und den Wert immer bei jedem Schleifendurchgang mit dem aktuellen vergleichen. Wenn unterschied, dann neuer Buchstabe, d.h. extra-Ausgabe von Überschrift mit neuenm Buchstaben und diesen auch in Merker speichern. Fertig.

    Kommentar


    • #3
      Also erstmal danke für die Hilfe. Und zweitens: Ich habe kein pw und "nur2 den root weil ich es eh nur auf meinem homepc erstmal teste. Dazu muss ich sowieso erst apache etc.. starten von dem her kommt eh keiner drauf.

      Kannst du das mit der Schleife nochmal genauer erklären, wie das dann aussehen könnte ?

      Kommentar


      • #4
        okay, war ja auch nur eine Warnung.

        PHP-Code:
        $merker="";
        while (
        $inhalt mysql_fetch_array($ergebnis))
            {
             if (
        $merker != $inhalt['buchstabe']) {
                
        $merker $inhalt['buchstabe'];
                echo 
        "<tr><td width=50><b>".$inhalt['buchstabe']."</b></td></tr>";
                }
             echo 
        "<tr>\n";
             echo 
        "<td>\n";
             echo 
        "<a href='manga_review.php?id=$inhalt[id]'>$inhalt[review_name]</a>\n";
             echo 
        "</td>\n";
             echo 
        "</tr>\n";
            } 
        macht natürlich nur Sinn, wenn der SQL-Query nicht nur die Einträge vom Buchstabe "A" selektiert, sondern alles:

        $sql = "SELECT * FROM reviews WHERE 1 ORDER BY buchstabe ASC";

        Kommentar


        • #5
          ja, es sollen in einer seite alle einträge untereinander mit jeweils der zugehörigen "Überschrift" (A,B,C,...Z) dargestellt werden. Hast du das so richtig verstanden und funktioniert diese Methode dann damit ?

          mfg

          Kommentar


          • #6
            ja, das sollte so funktionieren

            Kommentar

            Lädt...
            X