Hallo Forum,
ich habe gerade versucht 100en News eine Kategorie zuzuweisen, indem ich die Kategory-ID einfach im Feld "category" über SQL gesetzt habe:
UPDATE tt_news SET category=1;
Im phpmyadmin wird auch richtig angezeigt, allerdings nicht im Backen in der Newsliste. Ich dankte mir, es liegt an der Cache, deswegen habe ich den table tt_news_cache geleert, aber auch ohne Effekt. Als hätte ich nie etwas in der Datenbank geändert haben die News in der Backen-Liste ihre Kategorie (oder eben keine)
Kann mir jemand sagen woran das noch liegen kann?
LG
Semmel
die Kategorien in tt_news werden über die Tabelle "tt_news_cat_mm" zugewiesen, jeder tt_news Datensatz bekommt dort die UID der tt_news Kategorie zugeordnet.
uid_local = tt_news Datensatz uid
uid_foreign = tt_news Kategorie uid
Oh, danke Karlchen. Für was ist dann der Bereich "category" im tabel tt_news?
Hast du zufällig einen Vorschlag, wie ich dann für alle bestehenden News dort einen Kategorieeintrag erstellen kann mit SQL?
MohnSemmel schrieb
Oh, danke Karlchen. Für was ist dann der Bereich "category" im tabel tt_news?
Hallo Mohnsemmel,
diese Spalte "category" sagt dir wie viele Kategorien dieser News zugeordnet sind.
Grüße Patrick
king.darki schrieb
diese Spalte "category" sagt dir wie viele Kategorien dieser News zugeordnet sind.
Danke!
Weisst du wie ich über SQL allen News eine Kategorie zuweisen kann. Sind zu viele um es übers Backend zu machen ...
MohnSemmel schrieb
Weisst du wie ich über SQL allen News eine Kategorie zuweisen kann. Sind zu viele um es übers Backend zu machen ...
Das Problem ist, dass du für jede News in der Tabelle tt_news einen Eintrag in tt_news_cat_mm machen musst, wobei uid_local die ID der aktuellen News ist (also immer eine andere ID) und uid_foreign die ID der Kategorie (die immer gleich ist).
Eine Schleife für INSERTs zu basteln klappt glaub ich nicht, zumindest wäre mir nichts bekannt...
Du könntest dir höchstens einen INSERT-Befehl im Editor zusammenbasteln und dann ausführen: (ungetestet!)
INSERT INTO tt_news_cat_mm (uid_local, uid_foreign, sorting)
VALUES ("ID der 1. News", "ID der Kategorie", 1),
VALUES ("ID der 2. News", "ID der Kategorie", 1),
...
VALUES ("ID der letzten News", "ID der Kategorie", 1);
Ich hoffe nur für dich, dass es nicht zuuu viele News sind, ansonsten ist diese Methode wohl schmarrn.
Grüße Patrick
Hallo Patrick,
danke für deine Hilfe. Da war allerdings ein kleiner Fehler im SQL, weil man nicht vor jede Zeile VALUES schreibt. So gehts:
INSERT INTO tt_news_cat_mm (uid_local, uid_foreign, sorting)
VALUES (1, 1, 1),
(2, 1, 1),
(3, 1, 1),
...
(347, 1, 1);
Hab mir dann einfach im Excel eine Liste angelegt mit den Werten von 1-347 (soviele News waren es) und dann als CSV exportiert. War in 10 Minuten erledigt.
LG
Semmel
MohnSemmel schrieb
danke für deine Hilfe. Da war allerdings ein kleiner Fehler im SQL, weil man nicht vor jede Zeile VALUES schreibt.
Ach ja klar, hast natürlich recht. Wie gesagt, war ungetestet, aber schön, dass ich dir helfen konnte!
Grüße Patrick
Angenommen alle betroffenen News sind im Sysfolder mit der uid 65 gespeichert und die gewünsche News-Category hat die uid 8, dann kann man mit folgendem SQL alle Einträge aktualisieren:
UPDATE tt_news SET category=1 WHERE pid = 65;
INSERT INTO tt_news_cat_mm (
uid_local,
uid_foreign,
sorting)
(SELECT uid, 8, 1 FROM tt_news WHERE pid = 65);