{{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 %%
db-ID | ' .LF.'ISO | ' .LF.'ISO3 | ' .LF.'ISONUM | ' .LF.'C-CODE | ' .LF.'C-NAME | ' .LF.'CONTINENT | ' .LF; $table .= '
'.$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;
$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]]
\\