News - Kategorien durch User verwalten lassen?

2Pac

Erfahrenes Mitglied
Hallo Leute,

ich bin zur Zeit dabei eine Homepage für eine Communityseite zu programmieren. Aber irgendwie bin ich mit meinem Latein am Ende. Ich will, dass jeder User der sich vorher natürlich registrieren muss und eingeloggt sein muss, die News, die er sehen will in der Login-Verwaltung auswählen kann. So das Formular etc. alles kein Problem. Nur wie schaffe ich, dass ich die Informationen speichere und später auch wieder verändern kann bzw. natürlich auch auslesen kann.

Ich habe im Moment 2 Tabellen erstellt. Die erste dient zur Newsverwaltung. Dort steht jede News mit einer unikaten ID und allen wichtigen Daten sowie der Kategorie_ID drinne. Die 2. Tabelle ist eine Übersicht der vorhandenen Kategorien auch hier mit unikaten IDs. D.h. dort findet man z.b. id = 1 kat = Sport. In der Newstabelle findet man dann unter Kategorie_ID die 1 wieder.

Kategorien können nun bearbeitet, gelöscht und erstellt werden.

Ich hab mir halt gerade so gedacht ich erstelle in der Tabelle users eine Spalte "news". Nun erstelle ich, wenn ein User gespeichert hat, welche News er sehen will die Werte in einen Array z.b. 0.1.0.1.1.1.1.0 Diesen Array explode ich dann einfach und kann sagen Sport = 0 , Allgemeines = 1 etc. Aber irgendwie ist da ein Denkfehler, denn ich kann weder die 0/1en zu den Kategorien zuordnen, noch weiß ich nicht was ich mache, wenn ich Kategorien lösche. Beim hinzufügen, kann ich den array ja ganz einfach erweitern mit .0 oder .1.

Ich hoffe mein Ansatz ist verständlich.

Kann jemand helfen wie ich das am besten realisieren könnte?

Danke im Voraus.

2Pac
 
Eine zusätzliche Tabelle.
So muss du nichts mehr exploden etc.
User_id als Index anlegen.

Code:
user_id | kat_id
 
Und wie verarbeite ich die neue Tabelle. Mit dem Gedanken habe ich ja schon gespielt. Nur mir war nicht klar, wie ich dann das auslesen der News gestalten soll, da ich ja mehrere Datensätze in der Tabelle hab, die nicht statisch sind und somit der SELECT ja anders aussehen müsste oder nicht?
 
Sagen wir User 138 hat 3 Kategorien:

Code:
user_id | kat_id
  138        2
  138        4
  138        9

Lasse alle kat_id's von einem user auslesen:

PHP:
('SELECT user_id, kat_id FROM table WHERE user_id = "' .$userid. '"');

So kannst du ein Array mit allen Kategoriennummern für einen bestimmten User bekommen.

Löschen geht auch:

PHP:
('DELETE FROM table WHERE user_id = "' .$userid. '" AND kat_id = "' .$katid. '"');

Und hinzufügen:

PHP:
('INSERT INTO table (user_id, kat_id) VALUES ("' .$userid. '","' .$katid. '")');
 
Zuletzt bearbeitet:
Also ich habe es jetzt folgendermaßen versucht ohne auf den explode aufzugreifen:

Code:
$get_news = mysql_db_query("$datenbank", "SELECT id,userid,schrift,text,datum,kommentare,katid FROM users as u, news as n, userkat as m WHERE u.id = m.userid AND m.katid = n.katid AND n.aktiv = '1' AND n.user = '0' ORDER BY n.id DESC LIMIT 0,$max");

Zur erklärung ich wollte die Tabellen verbinden um dann die Daten zu entnehmen. Aber das klappt nicht wie ich will. Stattdessen kommt nun die Fehlermeldung Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /www/htdocs/fila/test/includes/include_news.php on line 16

Zu den Datenbanken:

users: wichtige spalten sind "id"
news: wichtige spalten sind "id", "userid", "schrift", "text", "datum", "kommentare", "katid" (da diese dann ausgegeben werden sollen)
newskat: wichtige spalten "userid", "katid"

Jemand ne Ahnung was ich falsch mache?
 
Zurück