Katalogisierung
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
artikel
ausgeben
auslese
aussehen
code
datum
folgende abfrage
frage
geld
host
liste
listen
nachteil
not
null
ordern
paar
parameter
spalte
url
-
hi,
auf meiner website soll es einige artikel geben. nun möchte ich sie in listen einordnen. Einmal nach a-z ujnd einmal nach themenrichtung. also sind alle in zwei listen (mindestens). gibt es irgendeinen Befehl, der einen link zu der seite in listenform aufreit. bspweise, durch den metatag. also da steht irgendwo "a" oder "geld" und dann wird diese seite in die liste A und Geld eingeordnet. Mit einem Link dazu? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Das musst du schon selbst implementieren.
Entweder serverseitig mit PHP, also dass dein Skript in Abhängigkeit von einem GET- oder POST-Parameter die Liste unterschiedlich aufbaut -
Oder clientseitig mit JS, also dass du dir einmal per AJAX die Liste vom Server als XML (z.B.) holst (sprich, das aufgerufene PHP-Skript holt sich die Daten aus der DB und verpackt sie als XML) und dann lokal sortierst. Das hat den Vorteil, dass du nicht dauernd gegen die DB laufen musst.
Zur Sortierung selbst gibt es zig Möglichkeiten, die alle ihre Vor- und Nachteile haben: Quicksort, Insertion sort, Bubble sort, Binary tree sort, nur um ein paar zu nennen.
Edit: Was ist überhaupt eine Erisierung oder was bedeutet deine Überschrift?
Beitrag zuletzt geändert: 19.10.2009 12:23:38 von census -
ich bin noch ziemlich neu auf dem gebiet, gibt es auch etwas einfacheres? Oder wie macht man das mit der db?
PS:mir ist keine bessere überschrift eingefallen, ich weiß noch nicht mal ob das richtig geschrieben ist^^ -
Also:
Ich würde es so machen, dass du alle Artikel in einer Datenbank speicherst.
Dann brauchst du einmal eine Spalte für den Titel des Artikels (der nach a-z geordnet werden soll)
und eine Spalte für die Themenrichtung (nach der auch sortieert werden soll)
und eine Spalte, wo dann der Artikel steht.
Praktisch wäre dann noch eine Spalte ID, damit jeder Eintrag eine eindeutige nummer bekommt.
Und evtl auch noch eine Spalte, wann der Artikel geschrieben wurde.
Deine Tabelle könnte dann so aussehen:
CREATE TABLE `artikel` ( `id` INT( 6 ) NOT NULL AUTO_INCREMENT PRIMARY KEY , `titel` VARCHAR( 255 ) NOT NULL , `themenrichtung` VARCHAR( 255 ) NOT NULL , `artikeltext` TEXT NOT NULL , `datum` INT NOT NULL );
Wenn du dann alle Artikel nach Titel sortiert haben willst, machst du folgende Abfrage:
SELECT * FROM `artikel` ORDER BY `titel` ASC;
Dann werden Alle Artikel nach Titel sortiert ausgelesen.
Und bei der Themenrichtung:
SELECT * FROM `artikel` ORDER BY `themenrichtung` ASC;
Dann werden alle Artikel nach Themenrichtung sortiert ausgelesen
noch fragen?
Ask me
PS: Zum Thema MySQL:
http://schattenbaum.net/php/mstart.php
Beitrag zuletzt geändert: 19.10.2009 13:40:46 von pennerspenden -
das hört sich interessant an. schon mal vielen dank. ich hab aber noch ein paar fragen.
und eine Spalte, wo dann der Artikel steht.
du meinst damit den artikel mit dem link, oder?
was ist wenn ich ein bild dabei haben möchte und jedesmal eine kleine Beschreibung? soll ungefähr so aussehen:
BildBild Überschrift
BildBild BeschreibungBeschreibungBeschreibungBeschreibungBeschreibungBeschreibungBeschreibung
BildBild BeschreibungBeschreibungBeschreibungBeschreibungBeschreibungBeschreibungBeschreibung
Wie kann ich das auslesen lassen?
und meine letzte Frage: Wie lasse ich nur die artikel einer bestimmten Themenrichtung auslesen( oder eines anfangsbuchstaben)?
-
Ich versuche mal das ganze mit Pseudocode zu erklären (es ist kein lauffähiger PHP-Code).
Nehmen wir an wir haben das Datenbankmodell, von pennerspenden:
Auf deiner HP hast du einen Link auf liste.php?sort=titel und einen Link auf liste.php?sort=themenrichtung, wobei der erste Link die Seite geordnet nach Titel ausgeben soll und der zweite Link die Seite geordnet nach Thema ausgeben soll.
Der Code sähe nun in etwa so aus (NUR PSEUDOCODE):
<? mysql_connect ($host, $user, $pw); mysql_select_db ($db); $query = 'select * from artikel'; if (isset ($_GET ['sort'] ) ) $query .= ' order by ' . $_GET ['sort']; echo '<table>'; while ($row = mysql_fetch_assoc (mysql_query ($query) ) ) echo '<tr><td>' . $row ['titel'] . '</td><td>' . $row ['artikeltext'] . '</td></tr>'; echo '</table>'; ?>
-
Ich glaube du meinst etwas anderes. ich meine wie bekomm ich nur alle titel herausgelistet, die mit a,b,c... anfangen oder nur die titel, die zu einer bestimmten themenrichtung gehören?
Beitrag zuletzt geändert: 23.10.2009 10:05:24 von area-of-games -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage