Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

Tabellenabfrage ordnen

Ich möchte eine Link-Sammlung erstellen. Dazu habe ich zwei MySQL-Tabellen erstellt:

Für die Links
CREATE TABLE `links` (
`ID` tinyint(4) NOT NULL auto_increment,
`URL` varchar(255) NOT NULL default '',
`name` varchar(255) NOT NULL default '',
`beschreibung` text NOT NULL,
`lkat` varchar(255) NOT NULL default '',
PRIMARY KEY (`ID`)
);

Für die Link-Kategorien (lkat)
CREATE TABLE `lkat` (
`ID` tinyint(4) NOT NULL auto_increment,
`name` varchar(255) NOT NULL default '',
PRIMARY KEY (`ID`)
);

Wenn ich die Links sortieren lassen will, ist das teilweise kein Problem (ORDER BY name ASC), aber wie kann ich die Links nach Kategorien (alphabetisch) ordnen?

Hier gehts zum Orginal Eintrag "Tabellenabfrage ordnen" im Forum

Antworten

Was ich noch sagen sollte:

in der Tabelle links wird unter lkat nur die ID der Kategorie gespeichert.

ORDER BY lcat ASC

ist nicht sinnvoll, weil in der link-tabelle nur die ID von der Kategorie gespeichert wird und dann wirds zwar gruppiert aber nicht alphabetisch sortiert


2.

Hi,

einfach mit 'ORDER BY lkat, name ASC'

Warum hast du das Feld 'lkat' als 'varchar(255)' definiert, wenn du nur die ID speicherst ist es sinnvoller dieses im gleichen Format wie die ID in der Referenztabelle anzulegen (bei dir also tinyint(4)). Damit hast du weniger Probleme mit Datentypkonflikten, wenn deine Abfragen/Programme komplexer werden.

Gruß Fex


3.

Bist du dir sicher das dir Tinyint reicht, vorallem unsigned, dh du kannst maximal 127 Links bzw Link Kategorieren eintragen bevor nichts mehr geht.


4.

hab jetzt die ID-Felder auf int(11) geändert, reicht das?

aber mein eigentliches Problem wurde noch nicht beantwortet:
ORDER BY lkat, name ASC <- wenn das im SQL-Befehl "SELECT .. FROM links" steht, dann bringt es doch nichts, weil er dann nur nach der ID sortiert, was aber nicht alphabetisch sein muss.


5.

Alphabetisch ist es über die ID nicht, sondern halt nummerisch. Um eine Suchreihenfolge alphabetisch nach Kategorienamen und Linknamen zu erhalten, mußt du die beiden Tabellen über die Kategorie-ID verbinden
Code:                   In Zwischenablage kopieren (nur IE)
1">




Hier gehts zum Orginal Eintrag "Tabellenabfrage ordnen" im Forum
 
phpforum.de | Impressum