tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
24
ZUGRIFFE
1620
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    smoothart smoothart ist offline Grünschnabel
    Registriert seit
    Mar 2005
    Beiträge
    2
    Aloah, als jungfräulicher User dieses Forums möchte ich hiermit auch gleich meine 1. Frage stellen, denn leider konnte ich trotz intensiver Recherche keine Lösung für mein Problem finden:

    In meiner MySQL-Tabelle sind verschiedene Links gespeichert, die dann sortiert angezeigt werden. Diese Links sind aber auch noch bestimmten Kategorien zugeordnet ...

    Beispiel:

    ID / Kategorie / Link

    1 / kategorie 1 / www.link1.de
    2 / kategorie 2 / www.link2.de
    3 / kategorie 1 / www.link3.de
    4 / kategorie 3 / www.link4.de

    Wie bekommt man es hin, daß die Links nach den einzelnen Kategorien sortiert ausgegeben werden?
    Die entsprechende Kategorie soll dabei einmal als Überschrift erscheinen und darunter sollen alle dazugehörigen Links aufgelistet sein.

    Ich habe schon meiner Meinung nach alle Kombinationen mit ORDER BY und GROUP BY ausprobiert, aber irgendworan hakt es immer.
    Mit GROUP BY bin ich schon dicht rangekommen, nur wurde dann auch immer nur jeweils ein Link der Kategorie ausgegeben. Hier mein Script:

    $sql = "SELECT * FROM bsc_links GROUP BY links_kategorie ASC";

    $ergebnis = mysql_query($sql, $verbindung);
    while($row = mysql_fetch_array($ergebnis))
    {
    echo "$row[links_kategorie]<br>";
    echo "$row[links_name]<br>";
    }
    mysql_free_result($ergebnis);

    Ich würde mich freuen, wenn mir einer von Euch bei meinem Problem weiterhelfen könnte.

    Gruß Norman
     

  2. #2
    olly1882 olly1882 ist offline Mitglied Silber
    Registriert seit
    May 2004
    Ort
    Hagen
    Beiträge
    77
    Lies doch erst deine Kategorien aus (wenn es viele sind) oder gib sie einfach vor (wenn es nur wenige sind). Dann fragst du nur die Links einer Kategorie ab:
    PHP-Code:
    $sql "SELECT * FROM bsc_links WHERE links_kategorie = '".$kategorie."';"
     
    Viele Grüße
    Olly

  3. #3
    Registriert seit
    Jun 2004
    Ort
    Stuttgart (BW)
    Beiträge
    1.746
    Hi!

    Group by ist für eine Gruppierung.
    Wenn Du Order by nutzt, dann sollte es eigentlich gehen.
    PHP-Code:
    $sql "SELECT * FROM bsc_links ORDER BY links_kategorie ASC"
    So sortiere ich jedenfalls die Daten in meinen Datenbanken.

    redlama
     
    Wissen ist Macht! Nichts wissen macht auch nichts, ...
    www.redlama.org

  4. #4
    smoothart smoothart ist offline Grünschnabel
    Registriert seit
    Mar 2005
    Beiträge
    2
    Danke für Eure schnelle Hilfe, doch leider funktioniert es so noch nicht.
    Das Ergebnis sollte dann so aussehen:

    Kategorie 1:
    www.link1.de
    www.link3.de
    ...

    Kategorie 2:
    www.link2.de
    ...

    etc.

    Wichtig ist jedenfalls das der Name der Kategorie einmal als Überschrift ausgegeben wird und zwar NUR einmal. Die eigentliche Sortierung hatte ich schon hinbekommen mit ORDER BY.

    Leider kann ich die Kategorien auch nicht vorgeben (so hatte ich es nämlich schon gelöst), denn die Links sollen von nem anderen Script editiert werden, wo auch neue Kategorien angelegt werden können.
     

  5. #5
    Registriert seit
    Jun 2004
    Ort
    Stuttgart (BW)
    Beiträge
    1.746
    Dann mach das ganze doch mit 2 Abfragen.
    Mit der 1. suchst Du die Kategorien raus:
    PHP-Code:
    $sql "SELECT distinct Kategorie FROM bsc_links"
    Die lässt Du Dir dann in einer Schleife als Überschiften ausgeben und machst zusätzlich in der Schleife die 2. Abfrage:
    PHP-Code:
    $sql "SELECT Link FROM bsc_links WHERE Kategorie='gefunden Kategorie'"
    Und die lässt Du dann auch direkt ausgeben.
    Dann solltest Du die Kategorien als Überschriften und die einzelnen Links darunter haben.

    redlama
     
    Wissen ist Macht! Nichts wissen macht auch nichts, ...
    www.redlama.org

  6. #6
    asdfg asdfg ist offline Mitglied Bronze
    Registriert seit
    Mar 2004
    Beiträge
    45
    Endlich, seit Tagen suche ich eine Antwort auf meine Lösung. Endlich habe ich ein Tread gefunden der mein ProbIem in etwa umfschreibt.
    helfem
    Ich verstehe nicht ganz wie diese Script aussehen müsste. Kann mir jemand ausführlich helfen?

    Wie kann ich die 1. Abfrage in die 2. einbeziehen?
    PHP-Code:
    $sql "SELECT distinct Kategorie FROM bsc_links"
    Wie bringe ich diese Daten denn in einen Array und oder wie heisst dieser?

    PHP-Code:
    $sql "SELECT Link FROM bsc_links WHERE Kategorie='gefunden Kategorie'"
    Ist "gefunden Kategorie" ein Array?

    Kann mir jemand das Script zusammenhängend schreiben, und gleich beschreiben was gerade geschieht?

    Ich freue mich auf die ausführlichen Antworten...
     

  7. #7
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Was versuchst du zu realisieren, Asdfg?
     
    Markus Wulftange

  8. #8
    asdfg asdfg ist offline Mitglied Bronze
    Registriert seit
    Mar 2004
    Beiträge
    45
    Dass:

    ID / Kategorie / Link

    1 / kategorie 1 / www.link1.de
    2 / kategorie 2 / www.link2.de
    3 / kategorie 1 / www.link3.de
    4 / kategorie 3 / www.link4.de

    Oder anders ausgedrückt!:

    Dass:

    Kategorie 1:
    www.link1.de
    www.link3.de
    ...

    Kategorie 2:
    www.link2.de
    ...

    etc.

    Fragen?
     

  9. #9
    asdfg asdfg ist offline Mitglied Bronze
    Registriert seit
    Mar 2004
    Beiträge
    45
    Kann mir niemand helfen?
     

  10. #10
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Gruppiere die Datensätze mit der GROUP BY-Klausel einfach nach den Kategorien.
     
    Markus Wulftange

  11. #11
    Avatar von Danielku15
    Danielku15 Danielku15 ist offline Mitglied Platin
    Registriert seit
    Feb 2004
    Ort
    Österreich
    Beiträge
    731
    Blog-Einträge
    3
    Versuch mal das hier. Habs nicht getestet:
    PHP-Code:
    // Zur Datenbank verbinden //
    $conn mysql_connect('localhost','User','Pass'); 
    mysql_select_db('Datenbank',$conn);                 

    // Kategorien auslesen //
    $sql "SELECT `links_kategorie` FROM `bsc_links`;";
    $kategorien mysql_query($sql$conn); 

    // Alle Kategorien Durchlaufen //
    while($row mysql_fetch_array($kategorien)) 
    {
        
    // Kategorienname ausgeben //
        
    echo $row['links_kategorie']."<br />";
        
        
    // Links der Aktuellen Kateogie auslesen //
        
    $sql "SELECT `links_name` FROM `bsc_links` WHERE `links_kategorie`='".$row['links_kategorie']."';";
        
    $links mysql_query($sql$conn);
         
        
    // Alle Links durchlaufen //
        
    while($row2 mysql_fetch_array($links)) 
        {
            
    // Link ausgeben //
            
    echo $row2['links_name'];
        }
            

     

  12. #12
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Es geht auch mit nur einer Abfrage:
    PHP-Code:
    <?php

        $query 
    '
            SELECT
                    `Kategorie`,
                    `Link`
              FROM
                    `bsc_links`
              ORDER BY
                    `Kategorie` DESC
            '
    ;
        
    $result mysql_query($query);
        
    $tmp null;
        while( 
    $row mysql_fetch_array($resultMYSQL_ASSOC) ) {
            if( 
    $tmp != $row['Kategorie'] ) {
                if( !
    is_null($tmp) ) {
                    echo 
    '</ul>';
                }
                echo 
    '<h3>'.$row['Kategorie'].'</h3>';
                echo 
    '<ul>';
                
    $tmp $row['Kategorie'];
            }
            echo 
    '<li>'.$row['Link'].'</li>';
        }
        if( !
    is_null($tmp) ) {
            echo 
    '</ul>';
        }

    ?>
     
    Markus Wulftange

  13. #13
    asdfg asdfg ist offline Mitglied Bronze
    Registriert seit
    Mar 2004
    Beiträge
    45
    Also, habe diese Script angewendet. Nun jedoch wird jeder Kategorie Titel asgegeben, und danach der Link. Ich möchte aber nicht nur ein Link zu einerf Kategorie ausgeben.

    Etwa so:

    Kategorie 1
    Link 1

    Kategorie 2
    Link 2

    Kategorie 3
    Link3

    Mein Code (verendert):

    PHP-Code:
    <?PHP

    include 'config.php';

    // Kategorien auslesen //
    $abfrage "SELECT `http` FROM `fi`;";
    $kategorien mysql_query($abfrage); 

    // Alle Kategorien Durchlaufen //
    while($row mysql_fetch_array($kategorien)) 
    {
        
    // Kategorienname ausgeben //
        
    echo $row['http']."<br />";
        
        
    // Links der Aktuellen Kateogie auslesen //
        
    $abfrage "SELECT `name` FROM `fi` WHERE `http`='".$row['http']."';";
        
    $links mysql_query($abfrage);
         
        
    // Alle Links durchlaufen //
        
    while($row2 mysql_fetch_array($links)) 
        {
            
    // Link ausgeben //
            
    echo $row2['name'];
           
        }
            
    }  

    ?>
    Ist es nicht so, dass man etwas mit PHP einsetzten müsste, dass regelt dass nicht nur ein Link zur Kategorie ausgegeben wird? Leider kenne ich mich noch nicht perfekt aus mit PHP und MySql, aber ich finde es dennoch sehr interssant..
     

  14. #14
    asdfg asdfg ist offline Mitglied Bronze
    Registriert seit
    Mar 2004
    Beiträge
    45
    Bei deinem Script Gumbo ist das Resultat identisch.
     

  15. #15
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Ist dein Anliegen damit eigentlich befriedigt?
     
    Markus Wulftange

Ähnliche Themen

  1. mysql abfrage -> nach datum sortieren
    Von Operator_Jon im Forum Relationale Datenbanksysteme
    Antworten: 10
    Letzter Beitrag: 19.09.11, 18:53
  2. Antworten: 4
    Letzter Beitrag: 04.09.10, 07:33
  3. MySQL Ausgabe in Kategorien Sortieren...
    Von StarboyCelli im Forum PHP
    Antworten: 1
    Letzter Beitrag: 13.05.08, 23:10
  4. MySQL-Abfrage: Nach größter Zahl sortieren
    Von qsrs im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 16.10.07, 23:33
  5. SQL Abfrage nach Datum sortieren
    Von jcordes im Forum Relationale Datenbanksysteme
    Antworten: 11
    Letzter Beitrag: 07.12.06, 15:05