Kategorie Copy

MyOOS hat einen Fehler, oder tut nicht das, was Ihr erwartet? Derartige "Unanehmlichkeiten" bitte hier.
Antworten
ensy3k
Beiträge: 7
Registriert: 24.12.2008, 22:24
Kontaktdaten:

Beitrag von ensy3k »

Hallo,

ich habe viele Kategorien auf der Internetseite

Beispiel:

- Audi
- A100
- A80
- A3
- A4
- A5
- .. usw

Wie man sieht hat jede Auto Marke Ziemlich viele Modelle.
Wenn man sich Mercedes Benz mal anschaut die haben Mega Viele Modelle

Was ich jetzt jedes mal machen muss ist, das ich in jedes Auto Modell nochmals Kategorien einfügen muss.

- Innenaustattung
- Elektrik
- Scheiben
- Filter
- Motor
- Karosserie
- usw...

Das ist Ziemlich viel Arbeit.

Gibt es keine möglichkeit das ganze jeweils in jedes Modell-(Kategorie) aufeinmal zu Kopieren?
Sind immer 15 Kategorien die ich in jedes Auto Modell Kategorie Erstellen muss..
Vieleicht über Datenbank oder so ?

Vielen Danke
r23
Beiträge: 2696
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Beitrag von r23 »

Gibt es keine möglichkeit das ganze jeweils in jedes Modell-(Kategorie) aufeinmal zu Kopieren?
Sind immer 15 Kategorien die ich in jedes Auto Modell Kategorie Erstellen muss..
Vieleicht über Datenbank oder so ?
Eben ein import Skript schreiben ist vermutlich zu aufwendig? Ansonsten kann ich etwas für 200 Euro nächste Woche basteln...

Lösungsvorschlag

Die Kategorien werden über zwei Tabellen verwaltet
categories und categories_description

Sehen wir uns eben den Aufbau an

CREATE TABLE IF NOT EXISTS `prefix_categories` (
`categories_id` int(11) NOT NULL auto_increment,
`categories_image` varchar(64) collate latin1_general_ci default NULL,
`parent_id` int(11) NOT NULL default '0',
`sort_order` tinyint(4) default NULL,
`date_added` datetime default NULL,
`last_modified` datetime default NULL,
`categories_status` tinyint(4) NOT NULL default '0',
PRIMARY KEY (`categories_id`),
KEY `idx_parent_id` (`parent_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=6 ;


CREATE TABLE IF NOT EXISTS `prefix_categories_description` (
`categories_id` int(11) NOT NULL default '0',
`categories_languages_id` int(11) NOT NULL default '1',
`categories_name` varchar(32) collate latin1_general_ci NOT NULL,
`categories_heading_title` varchar(64) collate latin1_general_ci default NULL,
`categories_description` text collate latin1_general_ci,
`categories_description_meta` varchar(250) collate latin1_general_ci NOT NULL,
`categories_keywords_meta` varchar(250) collate latin1_general_ci NOT NULL,
PRIMARY KEY (`categories_id`,`categories_languages_id`),
KEY `idx_categories_name` (`categories_name`)
)


In der Tabelle categories erhält jeder datensatz eine neue categories_id (wir zählen durch 1,2,3,4,5,6,7, usw.) es ist ein auto_increment Feld.

Diese ID benötigen wir für die Zuordnung. parent_id . D.h. hier schreiben wir die ID rein in der die Kategorie angezeigt werden soll. 0 (Null) ist
Top

Wenn du deine Datenbanktablllen prefix_categories und prefix_categories_description erhälst du alle Datensätze die du kopieren möchtest im
richtigen Formamt ;)



INSERT INTO `prefix_categories` (`categories_id`, `categories_image`, `parent_id`, `sort_order`, `date_added`, `last_modified`, `categories_status`) VALUES
(1, '', 0, 0, '2008-10-07 16:02:08', NULL, 1),
(3, '', 0, 0, '2008-12-28 15:00:38', NULL, 1),
(4, '', 3, 0, '2008-12-28 15:01:02', NULL, 1),

usw.




wenn du 15 kategorien kopieren möchtest, trägst du hier einfach 15 Zeilen ein. z.b. 110 - 125 ... beim nächsten import 210 - 225

INSERT INTO `new_categories` (`categories_id`, `categories_image`, `parent_id`, `sort_order`, `date_added`, `last_modified`, `categories_status`) VALUES
(110, '', 3, 0, '2008-12-28 15:01:02', NULL, 1),
(111, '', 3, 0, '2008-12-28 15:01:02', NULL, 1),
(112, '', 3, 0, '2008-12-28 15:01:02', NULL, 1),
(113, '', 3, 0, '2008-12-28 15:01:02', NULL, 1),
(114, '', 3, 0, '2008-12-28 15:01:02', NULL, 1),
(115, '', 3, 0, '2008-12-28 15:01:02', NULL, 1),
(116, '', 3, 0, '2008-12-28 15:01:02', NULL, 1),
(117, '', 3, 0, '2008-12-28 15:01:02', NULL, 1),
(118, '', 3, 0, '2008-12-28 15:01:02', NULL, 1),
(119, '', 3, 0, '2008-12-28 15:01:02', NULL, 1),
(110, '', 3, 0, '2008-12-28 15:01:02', NULL, 1),
(120, '', 3, 0, '2008-12-28 15:01:02', NULL, 1),
(121, '', 3, 0, '2008-12-28 15:01:02', NULL, 1),
(122, '', 3, 0, '2008-12-28 15:01:02', NULL, 1),
(123, '', 3, 0, '2008-12-28 15:01:02', NULL, 1),
(124, '', 3, 0, '2008-12-28 15:01:02', NULL, 1),
(125, '', 3, 0, '2008-12-28 15:01:02', NULL, 1);

die *3* ist die kategorie in die diese Kategorien gezeigt werden!

Damit die Texte angezeigt werden können, expotierst du den Inhalt von categories_description
und änderst nur eben die categories_id entsprechend.

Wenn du bei der Fassung der zu kopierenden Kategorien Id klever bist, brauchst du nur eben eine eins 1 oder zwei 2 oder 3 4 5
mit einem Editor für den (15 x sprache )Datensätzen schreieben..


INSERT INTO `new_categories_description` (`categories_id`, `categories_languages_id`, `categories_name`, `categories_heading_title`, `categories_description`, `categories_description_meta`, `categories_keywords_meta`) VALUES
(110, 1, 'Innenaustattung', '', '', '', ''),
(110, 2, '', '', '', '', ''),
(110, 3, '', '', '', '', ''),
(110, 6, '', '', '', '', ''),
(111, 1, 'Elektrik', '', '', '', ''),
(111, 2, '', '', '', '', ''),
(111, 3, '', '', '', '', ''),
(111, 6, '', '', '', '', '');


hth

ralf
ensy3k
Beiträge: 7
Registriert: 24.12.2008, 22:24
Kontaktdaten:

Beitrag von ensy3k »

Hm sieht ganz gut aus aber für mich zu Kompliziert.
r23
Beiträge: 2696
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Beitrag von r23 »

Hm sieht ganz gut aus aber für mich zu Kompliziert.

mmh? Die Erklärung mag vermutlich sehr kompliziert klingen. Aber man muss wirklich
nur bis 15 zählen können 1.2.3.4.5.6.7.8.9.0.1.2.3.4.5. < kann man eigentlich?


Evtl. schreibst du dir ein Script?

Du erstellst eine Abfrage und gibst das Ergebnis als CVS aus.
Mit Open Office (oder meinetwegen MS Excel) änderst du die Zuordnung (parent_id)
und importierst die Datensätze

Oder man passt sich eben http://localhost/shop/admin/easypopulate.php
an.


Der einfachste Weg ist erst einmal die Datensätze die man kopieren möchte von categorie und categorie_description zu
exportieren.. dafür verwendet man phpmyadmin... wenn hier das problem liegt melden

Den Inhalt dann einfach hier in das Forum hauen....

cu

ralf
r23
Beiträge: 2696
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Beitrag von r23 »

Hallo,

da ich keine Datensätze aus dem Shop erhalten habe ... und emin Angebot bei einer
Schritt für Schritt-Lösung nicht angenommen wurde... habe ich eine Frage:

Warum wurde mein Angebot - die Datensätze, die Kopiert werden sollen - hier zu veröffentlichen
nicht angenommen? Wo war das Problem?


cu

ralf
Antworten