'; while($line = pg_fetch_array($result,null,PGSQL_ASSOC)) { $ret_string .= '' . $line["$displayfield"] . ''; } $ret_string .= ""; return $ret_string; } function DBTextBox($name, $value=NULL) { $ret_string = ''; // Now producing text and combobox fields foreach($table_settings[0]->field as $field) { // Making label $ret_string .= ''; if ($field["type"] == "text") { $ret_string .= DBTextBox($field["name"]); } elseif ($field["type"] == "lookup") { $ret_string .= DBLookupComboBox($field["name"], $field->lookup["table"], $field->lookup["key"], $field->lookup["display"]); } $ret_string .= "
"; } $ret_string .= ''; $ret_string .= ""; return $ret_string; } function DisplayTable($configfile, $tablename) { $dspt_modify = "����"; $dspt_delete = "����; //Adding text fields $keyfield = $tablename . "." . $table_settings[0]["key"]; $fields[] = $keyfield; $tables[] = $tablename; foreach ($table_settings[0]->field as $field) { if ($field["type"] == "text") { $fieldname = $tablename . "." . $field["name"]; $labels[$fieldname] = $field->label; $fields[] = $fieldname; } } //Adding lookup fields $lookupfields = $xml->xpath("/tables/table[@name='$tablename']". "/field[@type=\"lookup\"]"); foreach($lookupfields as $lookupfield) { $lookuptable = (string)$lookupfield->lookup[0]["table"]; $lookupkeyfield = (string)$lookupfield->lookup[0]["key"]; foreach ($lookupfield->lookup[0]->display as $df) { $displayfield = (string)$df["name"]; $fields[] = $lookuptable . "." . $displayfield; $joins[$lookuptable] = $tablename . "." . $lookupfield["name"] . " = " . $lookuptable . "." . $lookupkeyfield; $labels[$displayfield] = $lookupfield->label; } } //now building the query string foreach($fields as $key => $field) { $fields[$key] = "$field AS \"$field\""; } $query = "SELECT " . implode(',',$fields); $query .= " FROM $tablename "; // adding joins if they are present if (isset($joins)) { foreach($joins as $jointable => $joinexpression) { $query .= " INNER JOIN $jointable ON $joinexpression"; } } $result = pg_query($query); if (!$result) {return 0;} //Generating table $res_string = ""; //Head $res_string .= ""; foreach($labels as $label) { $res_string .= ""; } $res_string .= ""; $res_string .= ""; //Body $res_string .= ""; while($line = pg_fetch_array($result,null,PGSQL_ASSOC)) { $res_string .= ""; foreach($labels as $key => $value) { $res_string .= ""; } $res_string .= ""; $res_string .= ""; $res_string .= ""; } $res_string .= ""; $res_string .= "
" . iconv("UTF-8","KOI8-R", $label) . "$dspt_modify$dspt_delete
$line[$key]$dspt_modify$dspt_delete
"; return $res_string; } function ModifyRecordForm($configfile,$tablename,$id) { $btn_submit = "OK"; $ret_string = '
'; // Obtaining information on the specified record to fill the fields $query = "SELECT * FROM " . $table_settings["name"] . " WHERE " . $table_settings["key"] . " = $id"; $result = pg_query($query); $line = pg_fetch_array($result,null,PGSQL_ASSOC); // Now producing text and combobox fields foreach($table_settings[0]->field as $field) { // Making label $ret_string .= ''; if ($field["type"] == "text") { $ret_string .= DBTextBox($field["name"], $line[$field["name"]]); } elseif ($field["type"] == "lookup") { $ret_string .= DBLookupComboBox($field["name"], $field->lookup["table"], $field->lookup["key"], $field->lookup["display"], $id); } $ret_string .= "
"; } $ret_string .= ''; $ret_string .= "
"; return $ret_string; } function UpdateTable ($tablename, $key, $values) { // updating table } } ?> ------------- and the xml file ------------- В данном справочнике содержится информация по сериям локомотивов
`