{{indexmenu_n>300}} ====== DB-Abfrage mit der Funkt. "_dbQuery" ====== hier ein kleines Beispiel, wie die eingebaute Funktion **_dbQuery** in einem Script verwendet werden kann. function _dbQuery($query='', $_queryMode='ASSOC') { ....... } \\ **$_queryMode:** * INSERT, DELETE, UPDATE * ON_DUPLICATE //(INSERT ... ON DUPLICATE KEY)// * ROW, ARRAY //(SELECT Queries) // * COUNT //(Count)// * COUNT_SHOW //(send SHOW query and count results)// * ASSOC //(default)// \\ ===== Beispiel 01: ===== **Annahme:** Aus einer gegebene Tabelle //(hier beispielhaft "phpwcms_country")// sollen Daten selektiert und in einem CP abgebildet werden. \\ Die Tabelle kann natürlich auch eine selbst erstellte sein. Das Script wird im Ordner /frontend_render/ abgelegt. Die Daten werden aus der DB abgeholt, selektiert und in ein brauchbares Format gebracht, hier %%%%. \\ Über einen Replacement-TAG wird das Ergebnis in einem CP abgebildet. \\ \\ ==== Angepasster Tabellenauszug: ==== ^country_id ^ country_iso ^ country_iso3 ^ country_isonum ^ country_continent_code ^ country_name ^ country_continent ^ | 1 | AF | AFG | 4 | AS | Afghanistan, Islamic Republic of | Asia | | 2 | AL | ALB | 8 | EU | Albania, Republic of | Asia | | 3 | DZ | DZA | 12 | AF | Algeria, People\'s Democratic Republic of | Africa | | 4 | AS | ASM | 16 | OC | American Samoa | Oceania | | 5 | AD | AND | 20 | EU | Andorra, Principality of | Europe | | 6 | ... | ... | ... | ... | ... | ... | \\ * **Replacer im CMS:** {DB-QUERY} * **Tabellenname:** phpwcms_country * **Verwendete Felder der Tabelle:** country_id, country_iso, country_iso3, country_isonum, country_continent_code, country_name, country_continent * **Selektion nach:** * Ein Wert aus "continent_code" //(EU)// * **UND NICHT** Mehrere Werte aus "country_iso3" //('ala','alb')// * **UND** Anfangsbuchstaben aus "country_iso" // (a,b,c) // \\ ==== Script V1.0: ==== **Datei:** template/frontend_remder/rt_example_db_query00.php **TAG:** {DB-QUERY} '.LF; $table .= ''.LF.''.LF; $table .= LF.'' .LF.'' .LF.'' .LF.'' .LF.'' .LF.'' .LF.'' .LF; $table .= ''.LF; foreach ($result as $value) { $table .= ''.LF; $table .= LF.'' .LF.'' .LF.'' .LF.'' .LF.'' .LF.'' .LF.'' .LF; $table .= ''.LF; } $table .= ''.LF.'
db-ID ISO ISO3 ISONUM C-CODE C-NAME CONTINENT
'.$value['country_id']. ''.$value['country_iso']. ''.$value['country_iso3']. ''.$value['country_isonum']. ''.$value['country_continent_code'].''.$value['country_name']. ''.$value['country_continent'].'
'.LF; } // --- Replace and insert into page $content["all"] = str_replace('{DB-QUERY}',$table, $content["all"]); } ?> \\ \\ ==== Ergebnis: ==== **TAG:** {DB-QUERY} z.B. im CP "Einfacher Text". {{:deutsch:technik:aufruf-interner-funktionen:example_db_query01_1.gif|}} \\ ~~UP~~ ==== Script V1.1: ==== **Mit Parameterübergabe** z.B. **{DB-QUERY:EU}**, Ergebnis siehe oben. **Datei:** template/frontend_remder/rt_example_db_query01.php **TAG:** {DB-QUERY:[C-CODE]} '.LF; $table .= ''.LF.''.LF; $table .= LF.' db-ID ' .LF.' ISO ' .LF.' ISO3 ' .LF.' ISONUM ' .LF.' C-CODE ' .LF.' C-NAME ' .LF.' CONTINENT ' .LF; $table .= ''.LF; foreach ($result as $value) { $table .= ''.LF; $table .= LF.''.$value['country_id']. '' .LF.''.$value['country_iso']. '' .LF.''.$value['country_iso3']. '' .LF.''.$value['country_isonum']. '' .LF.''.$value['country_continent_code'].'' .LF.''.$value['country_name']. '' .LF.''.$value['country_continent'].'' .LF; $table .= ''.LF; } $table .= ''.LF.''.LF; } } if ($error_flag) $table = $error_text; // --- Replace and insert into page // $content["all"] = str_replace('{DB-QUERY:}',$table, $content["all"]); // Old version $content["all"] = preg_replace('/\{DB-QUERY\:'.$input.'\}/', $table, $content["all"]); } ?> \\ **Unbedingt auf die Sicherheitsabfrage achten nach ## %%// --- catch the selector %%## \\ Falls die Daten von einer Benutzereingabe kommen, müssen diese Daten sehr tief geprüft werden :!: :!:** ~~UP~~ \\ ===== Beispiel 02: ===== **Kundendatenbank:** {{:deutsch:technik:aufruf-interner-funktionen:example_db_query02_db_all.gif|}} **SQL: Beispieltabelle test_db_query02** # -------------------------------------------------------- # Host: 127.0.0.1 # Database: XXXX # Server version: 5.1.30-community # Server OS: Win32 # Date/time: 2010-10-20 08:05:10 # -------------------------------------------------------- # Dumping structure for table XXXX.test_db_query02 CREATE TABLE IF NOT EXISTS `test_db_query02` ( `ID` int(10) DEFAULT NULL, `type` char(20) DEFAULT NULL, `color` char(20) DEFAULT NULL, `something` char(20) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8; # Dumping data for table XXXX.test_db_query02: 12 rows /*!40000 ALTER TABLE `test_db_query02` DISABLE KEYS */; INSERT INTO `test_db_query02` (`ID`, `type`, `color`, `something`) VALUES (1, 'Lipstick Pen', 'red', 'big'), (2, 'Lipstick Pen', 'red', 'small'), (3, 'Lipstick Pen', 'light red', 'big'), (4, 'Lipstick Pen', 'light red', 'small'), (5, 'Eyeliner Pen', 'black', 'big'), (6, 'Eyeliner Pen', 'black', 'small'), (7, 'Eyeliner Pen', 'dark grey', 'big'), (8, 'Eyeliner Pen', 'dark grey', 'small'), (9, 'Eyebrow Pen', 'black', 'big'), (10, 'Eyebrow Pen', 'black', 'small'), (11, 'Eyebrow Pen', 'dark grey', 'big'), (12, 'Eyebrow Pen', 'dark grey', 'small'); /*!40000 ALTER TABLE `test_db_query02` ENABLE KEYS */; /*!40101 SET SQL_MODE=@OLD_SQL_MODE */; /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; \\ ==== Script V1.2: ==== **Datei:** template/inc_script/frontend_render/rt_example_db_query02.php '.LF; $table .= ''.LF.''.LF; $table .= LF.' db-ID ' .LF.' TYPE ' .LF.' COLOR ' .LF.' SOMETHING ' .LF; $table .= ''.LF; foreach ($result as $value) { $table .= ''.LF; $table .= LF.''.$value['id']. '' .LF.''.$value['type']. '' .LF.''.$value['color']. '' .LF.''.$value['something']. '' .LF; $table .= ''.LF; } $table .= ''.LF.''.LF; } else $table = $error_text2; // No DB output available! } // END IF (!$error_flag) if ($error_flag) $table = $error_text; // Wrong parameter // --- Replace and insert into page // $content["all"] = str_replace('{DB-QUERY:}',$table, $content["all"]); // Old version $content["all"] = preg_replace('/\{DB-QUERY2\:'.$input.'\}/', $table, $content["all"]); } ?> \\ ==== Ergebnis: ==== Z.B. mit dem Aufruf in einem HTML-CP **{DB-QUERY2:Eyeliner Pen}** {{:deutsch:technik:aufruf-interner-funktionen:example_db_query02_fe_1.gif|}} \\ **Links:** * [[http://php.net/manual/de/function.preg-match.php|PHP preg_match]] * [[http://www.php.net/manual/de/function.preg-replace.php|PHP preg_replace]] * [[links/php/regular-expression]] * [[http://php.net/manual/de/function.in-array.php|PHP in_array]] \\