Seite 1 von 1

Verfasst: 28.12.2008, 12:01
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

Verfasst: 28.12.2008, 15:34
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

Verfasst: 28.12.2008, 16:26
von ensy3k
Hm sieht ganz gut aus aber für mich zu Kompliziert.

Verfasst: 28.12.2008, 17:40
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

Verfasst: 30.12.2008, 18:45
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