sql2yaml.php ist eine PHP-Datei für osCommerce, an die man SQL-Anweisungen übergeben kann. Das Ergebnis wird als YAML-String zurück gegeben.
sql2yaml.php:
<?php
/*
Beim Aufruf dieser Datei kann der Parameter "sql" mit einer
SQL-Anweisung uebergeben werden. Das Ergebnis der Abfrage wird
als YAML-Datei zurueck gegeben.
By Gerold Penz
Released under the GNU General Public License
*/
/*
Vorbereitungen treffen
*/
if (file_exists('includes/local/configure.php')) include('includes/local/configure.php');
require('includes/configure.php');
require(DIR_WS_FUNCTIONS . 'database.php');
/*
Zur Datenbank verbinden und SQL-Anweisung ausfuehren
*/
tep_db_connect() or die('Unable to connect to database server!');
$sql = (isset($HTTP_GET_VARS['sql']) ? $HTTP_GET_VARS['sql'] : '');
$sql = str_replace("\\", "", $sql);
$result = tep_db_query($sql);
if ($result != 1) {
// Feldanzahl auslesen
$fields_count = mysql_num_fields($result);
// Metadaten auslesen
$i = 0;
while ($i < $fields_count) {
$field_meta = mysql_fetch_field($result, $i);
$meta[$i] = $field_meta;
$i++;
}
// Werte abfragen, mit Feldnamen kombinieren und ausgeben
$first = 1;
while($row = mysql_fetch_row($result)){
if ($first = 1) {
$first = 0;
print_r("---\n");
}
$i = 0;
while ($i < $fields_count) {
$key = $meta[$i]->name;
$value = $row[$i];
if ($value == "") {
$value = "~";
} elseif ($meta[$i]->type == "datetime" and $value != "") {
$value = "!timestamp " . $value . ".00";
}
if ($i == 0) {
print_r("- " . $key . ": " . $value . "\n");
} else {
print_r(" " . $key . ": " . $value . "\n");
}
$i++;
}
}
} else {
print_r("NO_RESULT");
}
?>
Die Installation ist relativ einfach. Man muss nur eine Datei in den Admin-Bereich des osCommerce-Shops hoch laden.
Die Datei sql2yaml.php
muß in den Admin-Ordner des Shops.
sql2yaml.php --> http://localhost/catalog/admin/
Zum Testen gibst du die URL http://localhost/catalog/admin/sql2yaml.php?sql=SELECT countries_name FROM countries LIMIT 0, 3
in die Adresszeile deines Browsers ein und bestätigst sie mit Enter. Die URL muss natürlich an deinen Shop angepasst werden. Das Ergebnis sollte ungefähr so aussehen::
---
-
countries_name: Afghanistan
-
countries_name: Albania
-
countries_name: Algeria
Im Browser wird natürlich alles nebeneinander angezeigt. Wenn du dir den Quelltext anzeigen lässt, dann siehst du als Ergebnis die Yaml-Struktur.
Python bringt alles mit, um damit den osCommerce-Server warten zu können. Mit urllib2 kann man den HTTP-Request absenden und die Rückgabe empfangen. Und mit PyYAML kann man den YAML-String parsen und in Python-Datentypen umwandeln.
Ich programmiere Progressive Web Applications, Mobile Apps, Desktop-Programme und noch vieles mehr. Falls es dich interessiert, findest du mehr Informationen darüber auf meiner Business-Website.