Ankündigung

Einklappen
Keine Ankündigung bisher.

Felder aus einer Datenbank auslesen

Einklappen

Neue Werbung 2019

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

  • Felder aus einer Datenbank auslesen

    Hallöchen!

    Da melde ich mich mal mit einem kleinen Problem.

    Code:
    <select name="to" onChange="javascript:location = this.form.to.options[this.form.to.selectedIndex].value;" size="1">
    	<option selected value="index.htm" disabled>Kategorie</option>
    	<?
    
    $sql = "SELECT DISTINCT kategorie FROM links ORDER BY kategorie";
    $result = mysql_query($sql,$db);
    
    while($option_form = mysql_fetch_array($result)) {
        echo "<option value='show_links.php?cat=$option_form[kategorie]'>$option_form[kategorie] (".mysql_num_rows($result).")</option>";
    } // while
    ?>
    </select>
    Mit diesem Code versuche ich per Drop-Down-Menü eine Kategorisierung vorzunehmen. Das funktioniert auch wunderbar!
    Fast jedenfalls, denn in Klammern hinter der Kategorie soll die Anzahl der in der Kategorie vorhandenen Einträge angezeigt werden.

    Es handelt sich hierbei um eine Linksammlung. Jeder Link wird in eine bestimmt Kategorie "gepackt". Um dem User zu zeigen, wie viele Links in der jeweiligen Kategorie vorhanden sind, eben diese Klammer.

    Frage: Wie bekomme ich es hin, dass dort die richtige Zahl steht? Also wie oft die z.B. die Kategorie "Tourismus" in der Datenbank vorhanden ist?
    (Dass meine mysql_num_rows-Funktion falsch ist, weiß ich. Geht es mit mysql_num_fields? Wenn ja, wie?)

    Vielen Dank schon einmal,

    mit freundlichen Grüßen verbleibe ich: Rasenkantenstein

  • #2
    du könntest mit SUBSTR die datensätze filtern, die deinen Inhalt enthalten und dann mit mysql_num_rows arbeiten.

    Kommentar


    • #3
      Das verstehe ich entweder gar nicht, oder falsch.

      Ich habe eine Datenbank, in der jede Menge Links sind. Jeder Eintrag weist eine Kategorie auf, welche auch in einer Spalte der Tabelle abgespeichert ist.
      Das heißt doch, dass es mehrere Kategorien in der selben Tabelle gibt. Aber wie soll ich die mit substr filtern?
      Mit dem Drop-Down-Feld soll man eine der vielen Kategorien auswählen können. Damit der User sehen kann, wie viele Links sich hinter der Kategorie verbergen, soll in Klammern die Anzahl der jeweiligen Kategorie in der Tabelle stehen.

      Kommentar


      • #4
        meinste sowas?
        SELECT kategorie, count(*) as rowcount FROM links group BY kategorie";

        Kommentar


        • #5
          Clan, kann sein ^^

          Mal ein Beispiel.

          Ich habe 10 Links in der DB, aufgeteilt in 3 Kategorien.
          4 der 10 Links haben die Kategorie Tourismus.
          5 haben die Kategorie Sonstiges.
          1 hat die Kategorie Tutorials.

          Nun soll hinter Tourismus eine (4) stehen, hinter Sonstiges eine (5) und hinter Tutorials (1).

          Bsp 2: Datenbankstruktur

          ID: 1 | NAME: link | URL: www.url.de | BESCHREIBUNG: blabla | KATEGORIE: Tourismus

          @Clan...
          möglich, dass deine SQL-Anweisung genau dies macht, aber welchen Funktion muss ich dafür nehmen (mysql_fetch_array, mysql_num_fields,..)?

          Könntest du das eventuell in den Quelltext oben einarbeiten?
          Das wäre großartig.

          Danke noch einmal...

          Kommentar


          • #6
            ok dann isset das was du haben willst..
            Code:
            $sql = "SELECT kategorie, count(*) as rowcount FROM links group BY kategorie"; 
            $result = mysql_query($sql,$db); 
            
            while($option_form = mysql_fetch_array($result)) { 
            echo "<option value='show_links.php?cat=".$option_form['kategorie']."'>".$option_form['kategorie']." (".$option_form['rowcount'].")</option>\n"; 
            
            }

            Kommentar

            Lädt...
            X