/**************************************************** **************************************
* SQLAdmin v2.0 - 一个 SQL网络管理用户界面 *
* 版权 (C) 1997-98 Alessandro Vernet
*********************** ****************************************************** ************
* 这个库是免费软件; 您可以重新分发它和/或 *
* 根据 GNU 库的条款 修改它 通用公共 *
* 许可为 由自由软件基金会发布; *
* 许可证版本 2 ,或 (由您选择)任何更新版本。 *
* *
* 这个 发布该库的目的是希望它有用, *
* 但不提供任何保证; 甚至没有对适销性或特定用途适用性的默示保证。 请参阅 GNU *
* 库通用公共许可证了解更多详细信息。 *
* *
* 你 应该收到 GNU 库 通用公共 *
* 许可证以及此库的副本; 如果没有,请写信给 *
* 免费软件 Foundation, Inc., 59 Temple Place - Suite 330, *
* 波士顿, MA 02111-1307, 美国。 *
************************************************ **************************************/
/ * 待办事项:
* - 添加排序顺序。
* - 添加简单视图。
* - 添加一些 文档。
*/
/* 限制:
* - 仅适用于 mSQL。
*/
/* 历史:
* - 97-11-05 (avernet) 用引用纠正了 一个 错误。
* - 98-01-01 (avernet) 向
* administrationTable 函数添加了一个 sortColumn 参数。
* - 98-03-14 (avernet) 添加了 函数 addTable ,使用户能够
* 添加(但不是修改) en 条目 到 数据库。
* - 98-05-19 (avernet) 已提交给 PX。
* - 98-10-11 (avernet) 现在 SQLAdmin 可与 PHP3 配合使用。 PHP2 版本
* 将不再维护。
* - 98-10-11 (avernet) SQLAdmin 现在以 LGPL
* 而不是 MPL 分发。
*/
函数 escapeforhtml ($string)
{
$结果 = $string;
//$结果 = ereg_replace (""", """, $结果);
$结果 = ereg_replace (" $结果 = ereg_replace (">", ">", $结果);
返回$结果;
}
函数 displayTuple ($fieldsNumber, $fieldNames,
$fieldLengths, $values, $mode)
{
$结果 = "";
$结果 .= “";
return $结果;
}
function fieldFromType ($text, $type)
{
if ($type == “整数” || $ type == "uint" || $type == "real")
{ $结果 = $text; }
else
{ $结果 = "'" 。 添加斜线 ($text) . "' "; }
return $结果;
}
函数 executeMsql ($database, $command)
{
/*echo " “ . $命令 . ”
";*/
msql ($database, $command);
}
函数 handleRemove ($database, $table, $fieldsNumber,
$fieldNames, $ fieldLengths, $fieldTypes)
{
全局 $remove;
if ($remove != "")
{
$com mand = “从 删除” . $table . “ WHERE ”;
$fieldIndex = 0;
while ($fieldIndex {
$fieldName = "旧-”。 $fieldNames [$fieldIndex];
全局 $$fieldName;
$command .= $fieldNames [$fieldIndex] . “=”。
fieldFromType ($$fieldName, $fieldTypes [$fieldIndex]);
if ($fieldIndex != $fieldsNumber - 1)
{ $command .= " AND "; }
$fieldIndex ;
}
executeMsql ($database, $command);
}
}
函数 handleUpdate ($database, $table, $fieldsNumber,
$fieldNames, $ fieldLengths, $fieldTypes)
{
全局 $update;
if ($update != "")
{
$command =“更新 ” 。 $表。 “ 放 ”;
$fieldIndex = 0;
while ($fieldIndex {
$fieldName = $fieldNames [$fieldIndex];
全局 $$fieldName;
$command .= $fieldName . “=”。
fieldFromType ($$fieldName, $fieldTypes [$fieldIndex]);
if ($fieldIndex != $fieldsNumber - 1)
{ $command .= ", "; }
$fieldIndex ;
}
$command .= " WHERE ";
$fieldIndex = 0;
while ($fieldIndex {
$fieldName = “旧-” 。 $fieldNames [$fieldIndex];
全局 $$fieldName;
$command .= $fieldNames [$fieldIndex] . “=”。
fieldFromType ($$fieldName, $fieldTypes [$fieldIndex]);
if ($fieldIndex != $fieldsNumber - 1)
{ $command .= " AND "; }
$fieldIndex ;
}
executeMsql ($database, $command);
}
}
函数 handleAdd ($database, $table, $fieldsNumber,
$fieldNames, $fieldLengths, $fieldTypes)
{
全局 $add;
if ($add != "")
{
$command = “插入到 ” 。 $表。 " (";
$fieldIndex = 0;
while ($fieldIndex {
$command .= $fieldNames [$fieldIndex];
if ($fieldIndex != $fieldsNumber - 1)
{ $command .= ", "; }
$fieldIndex ;
}
$command .= ") VALUES (";
$fieldIndex = 0;
while ($fieldIndex {
$fieldName = $fieldNames [$fieldIndex];
全局 $$fieldName;
$command .= fieldFromType ($$fieldName, $fieldTypes [$fieldIndex]);
if ($fieldIndex != $fieldsNumber - 1)
{ $command .= ", "; }
$fieldIndex ;
}
$命令 .= “)”;
executeMsql ($database, $command);
}
}
函数 displayRemoveUpdate ($database, $table, $sortColumn,
$fieldsNumber, $ fieldNames, $fieldLengths)
{
$结果 ="";
if ($sortColumn != "")
{ $sortColumn = " ORDER BY " 。 $排序列; }
$msqlresult = msql ($database, "SELECT * FROM " . $table . $sortColumn);
$tuplesNumber = msql_numrows ($msqlresult);
$tupleIndex = 0;
while ($tupleIndex {
$fieldIndex = 0;
while ($fieldIndex {
$values [$fieldIndex] = msql_result ($msqlresult, $tupleIndex,
$fieldNames [$fieldIndex]);
$fieldIndex ;
}
$result .= displayTuple ($fieldsNumber, $fieldNames,
$fieldLengths, $values, “修改”);
$tupleIndex ;
}
返回 $结果;
}
函数 displayAdd ($fieldsNumber, $fieldNames, $fieldLengths)
{
$result = "";
$fieldIndex = 0;
while ($fieldIndex {
$values [$fieldIndex] = "";
$fieldIndex ;
}
$结果 .= displayTuple ($fieldsNumber, $fieldNames,
$fieldLengths, $values, "add");
msql_close ();
返回$结果;
}
函数 administrationTable ($database, $table, $sortColumn)
{
$结果 = "";
msql_connect (“localhost”);
$msqlresult = msql ($database, "SELECT * FROM " . $table);
$fieldsNumber = msql_numfields ($msqlresult);
$msqlresult = msql_listfields ($database, $table);
$fieldIndex = 0;
while ($fieldIndex {
$fieldNames [$fieldIndex] = msql_fieldname ($msqlresult, $fieldIndex);
$fieldLengths [$fieldIndex] = msql_fieldlen ($msqlresult, $fieldIndex);
$fieldTypes [$fieldIndex] = msql_fieldtype ($msqlresult, $fieldIndex);
$fieldIndex ;
}
handleRemove ($database, $table, $fieldsNumber, $fieldNames, $fieldLengths, $fieldTypes);
handleUpdate ($database, $table, $fieldsNumber, $fieldNames, $fieldLengths, $fieldTypes);
handleAdd ($database, $table, $fieldsNumber, $fieldNames, $fieldLengths, $fieldTypes);
$结果 .= displayRemoveUpdate ($database, $table, $sortColumn, $fieldsNumber, $fieldNames,
$fieldLengths);
$结果 .= displayAdd ($fieldsNumber, $fieldNames, $fieldLengths);
返回$结果;
}
函数 addTable ($database, $table)
{
$结果 = "";
msql_connect (“localhost”);
$msqlresult = msql ($database, "SELECT * FROM " . $table);
$fieldsNumber = msql_numfields ($msqlresult);
$msqlresult = msql_listfields ($database, $table);
$fieldIndex = 0;
while ($fieldIndex {
$fieldNames [$fieldIndex] = msql_fieldname ($msqlresult, $fieldIndex);
$fieldLengths [$fieldIndex] = msql_fieldlen ($msqlresult, $fieldIndex);
$fieldTypes [$fieldIndex] = msql_fieldtype ($msqlresult, $fieldIndex);
$fieldIndex ;
}
handleAdd ($database, $table, $fieldsNumber, $fieldNames, $fieldLengths, $fieldTypes);
$结果 .= displayAdd ($fieldsNumber, $fieldNames, $fieldLengths);
返回$结果;
}
?>