Mailinglisten-Archive |
viell. gibt es ja doch eine lösung ohne dritte tabelle. meine tabellen stehen unten. also: unsere software erlaubt dem nutzer für die tabelle "kunden" eigene kategorien (contacts_categories) anzulegen. daraus werden dann <select> klappmenüs mit <options> (contacts_categories_options) erstellt. diese werden dann in einer tabelle (contacts_categories_values) gespeichert. nun soll es auch eine suchfunktion geben. zb durchsucht jmd seine kategorien (nicht im OR sondern im AND verfahren) nach bspweise: Kategorie BRANCHE (ID 2) mit dem Wert DIENSTLEISTUNGEN (ID 16) UND !! Kategorie MITARBEITERANZAHL (ID 16) mit dem Wert 6 BIS 10 MITARBEITER (ID 40) wie kann ich also nach den kontakten suchen / joinen, welche die angegebene kategorien hinterlegt haben?! ps: die daten bekomme ich aus einem $_GET Array mit jeweils: [0] = Array( contacts_categories = 2, contacts_categories_options_id = 16 ); [1] = Array( contacts_categories = 16, contacts_categories_options_id = 40 ); Achtung die Tabellen (sorry, sehr lange Namen - war leider vorgegeben...): CREATE TABLE `contacts_categories` ( `contacts_categories_id` int(11) NOT NULL auto_increment, `contacts_categories_name` varchar(255) NOT NULL default '', `groups_id` int(11) NOT NULL default '0', PRIMARY KEY (`contacts_categories_id`) ) -- -- Daten für Tabelle `contacts_categories` -- INSERT INTO `contacts_categories` (`contacts_categories_id`, `contacts_categories_name`, `groups_id`) VALUES (2, 'Branchen', 1), (16, 'Mitarbeiterzahl', 1); CREATE TABLE `contacts_categories_options` ( `contacts_categories_options_id` int(11) NOT NULL auto_increment, `contacts_categories_id` int(11) NOT NULL default '0', `contacts_categories_options_value` varchar(255) NOT NULL default '', `contacts_categories_options_name` varchar(255) NOT NULL default '', PRIMARY KEY (`contacts_categories_options_id`), KEY `contacts_categories_id` (`contacts_categories_id`) ) TYPE=MyISAM AUTO_INCREMENT=46 ; -- -- Daten für Tabelle `contacts_categories_options` -- INSERT INTO `contacts_categories_options` (`contacts_categories_options_id`, `contacts_categories_id`, `contacts_categories_options_value`, `contacts_categories_options_name`) VALUES (16, 2, 'dienstleistungen', 'Dienstleistungen'), (15, 2, 'industrie', 'Industrie'), (40, 16, '6_bis_10_mitarbeiter', '6 bis 10 Mitarbeiter'), (41, 16, '11_bis_20_mitarbeiter', '11 bis 20 Mitarbeiter') ... CREATE TABLE `contacts_categories_values` ( `contacts_categories_id` int(11) NOT NULL default '0', `contacts_id` int(11) NOT NULL default '0', `contacts_categories_options_id` int(11) NOT NULL default '0', KEY `contacts_id` (`contacts_id`), KEY `contacts_categories_options_id` (`contacts_categories_options_id`) ) -- -- Daten für Tabelle `contacts_categories_values` -- INSERT INTO `contacts_categories_values` (`contacts_categories_id`, `contacts_id`, `contacts_categories_options_id`) VALUES (2, 1, 16), (16, 1, 40);
php::bar PHP Wiki - Listenarchive