ERLEDIGT
NEIN
NEIN
ANTWORTEN
24
24
ZUGRIFFE
1620
1620
EMPFEHLEN
-
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
-
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
-
Hi!
Group by ist für eine Gruppierung.
Wenn Du Order by nutzt, dann sollte es eigentlich gehen.So sortiere ich jedenfalls die Daten in meinen Datenbanken.PHP-Code:$sql = "SELECT * FROM bsc_links ORDER BY links_kategorie ASC";
redlamaWissen ist Macht! Nichts wissen macht auch nichts, ...
www.redlama.org
-
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.
-
Dann mach das ganze doch mit 2 Abfragen.
Mit der 1. suchst Du die Kategorien raus: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 distinct Kategorie FROM bsc_links";
Und die lässt Du dann auch direkt ausgeben.PHP-Code:$sql = "SELECT Link FROM bsc_links WHERE Kategorie='gefunden Kategorie'";
Dann solltest Du die Kategorien als Überschriften und die einzelnen Links darunter haben.
redlamaWissen ist Macht! Nichts wissen macht auch nichts, ...
www.redlama.org
-
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?
Wie bringe ich diese Daten denn in einen Array und oder wie heisst dieser?PHP-Code:$sql = "SELECT distinct Kategorie FROM bsc_links";
Ist "gefunden Kategorie" ein Array?PHP-Code:$sql = "SELECT Link FROM bsc_links WHERE Kategorie='gefunden Kategorie'";
Kann mir jemand das Script zusammenhängend schreiben, und gleich beschreiben was gerade geschieht?
Ich freue mich auf die ausführlichen Antworten...
-
Was versuchst du zu realisieren, Asdfg?
Markus Wulftange
-
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?
-
Kann mir niemand helfen?
-
Gruppiere die Datensätze mit der GROUP BY-Klausel einfach nach den Kategorien.
Markus Wulftange
-
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'];
}
}
-
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($result, MYSQL_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
-
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):
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..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'];
}
}
?>
-
Bei deinem Script Gumbo ist das Resultat identisch.
-
Ist dein Anliegen damit eigentlich befriedigt?
Markus Wulftange
Ähnliche Themen
-
mysql abfrage -> nach datum sortieren
Von Operator_Jon im Forum Relationale DatenbanksystemeAntworten: 10Letzter Beitrag: 19.09.11, 18:53 -
Fragen aus xml auslesen und nach Kategorien sortieren.
Von cronkalonca im Forum JavaAntworten: 4Letzter Beitrag: 04.09.10, 07:33 -
MySQL Ausgabe in Kategorien Sortieren...
Von StarboyCelli im Forum PHPAntworten: 1Letzter Beitrag: 13.05.08, 23:10 -
MySQL-Abfrage: Nach größter Zahl sortieren
Von qsrs im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 16.10.07, 23:33 -
SQL Abfrage nach Datum sortieren
Von jcordes im Forum Relationale DatenbanksystemeAntworten: 11Letzter Beitrag: 07.12.06, 15:05





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren