aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--index.php7
-rw-r--r--isis.php86
2 files changed, 91 insertions, 2 deletions
diff --git a/index.php b/index.php
index 071d06d..f5a5704 100644
--- a/index.php
+++ b/index.php
@@ -177,10 +177,13 @@ include('spyc/spyc.php');
<h3>query reading a record</h3>
<?php
- $r = $db->read(3);
+ $r = $db->read(6);
echo "<pre>---\n", $r->toString(), "---\n</pre><br>\n";
echo '<pre>';
- echo print_r($r);
+ //print_r($r);
+ //print_r($r->val[8]);
+ print_r(preg_split('/\t/', $r->val[7]));
+
echo '</pre>';
} // end else could contact server
?>
diff --git a/isis.php b/isis.php
new file mode 100644
index 0000000..66b3b7d
--- /dev/null
+++ b/isis.php
@@ -0,0 +1,86 @@
+<?php
+/**
+ * Database procedures.
+ */
+
+/**
+ * Schema format example.
+ */
+$schema = array(
+ 'db' => array(
+ 'name' => 'dbname',
+ ),
+ 'fields' => array(
+ 'field_name' => array(
+ 'id' => 1,
+ 'size' => 1000,
+ 'format' => 'numeric',
+ 'repeat' => TRUE,
+ 'subfields' => array(
+ 'a' => 'test',
+ 'b' => 'test2',
+ ),
+ ),
+ ),
+);
+
+/**
+ * Generic interface for reading Isis databases.
+ */
+interface IsisDb {
+ // Constructor.
+ public function __construct($schema);
+
+ // Return field data for a given entry.
+ public function fields($id);
+
+ // Return subfield data for a given entry.
+ public function subfields($id);
+
+ // Read an entry.
+ public function read($id);
+
+ // Return number of rows in the database.
+ public function rows();
+}
+
+/**
+ * Malete implementation of IsisDb.
+ */
+class MaleteDb implements IsisDb {
+ var $fdt;
+ var $db;
+ var $format;
+
+ public function __construct($schema) {
+ // Save db schema.
+ $format = $schema;
+
+ // Setup $fdt used by malete.
+ foreach ($schema['fields'] as $field => $info) {
+ $fdt[$field] = $info['id'];
+ }
+
+ // Open a database connection.
+ $db = new Isis_Db($fdt, $schema['db']['name'], new Isis_Server());
+ }
+
+ public function fields($id == NULL) {
+ }
+
+ public function subfields($id == NULL) {
+ }
+
+ // TODO: put result into $schema format.
+ public function read($id) {
+ if (!is_numeric($id) {
+ return FALSE;
+ }
+ return $this->$db->read($id);
+ }
+
+ public function rows() {
+ }
+}
+
+?>