在《修改phpMyAdmin》中基本实现了对phpMyAdmin的“选择/编辑”功能的修改目标。但在使用中发现这样修改以后,程序原来所有的“插入”功能将无法实现。为了恢复程序的原有功能,对修改的程序要作如下调整:
在tbl_change.php3的开头修改如下:
$table_def = mysql_db_query($db, "SHOW FIELDS FROM $table");
if(isset($sql_query)){ //xueroom
$sql_query=stripslashes($sql_query);
$sql_query=preg_replace("/where.*$/","",$sql_query);
$sql_fields=preg_replace("/^SELECT\s+/","",$sql_query);
$sql_fields=preg_replace("/\s+from.*$/","",$sql_fields);
$fields_def=preg_split("/,/",$sql_fields);
//dump_array($fields_def);
//kong added
if (isset($primary_key))
{
$primary_key = stripslashes($primary_key);
// $result = mysql_db_query($db, "SELECT * FROM $table WHERE $primary_key");
$result = mysql_db_query($db, $sql_query." WHERE $primary_key");
$row = mysql_fetch_array($result);
}
else
{
$result = mysql_db_query($db, $sql_query." LIMIT 1");
//$result = mysql_db_query($db, "SELECT * FROM $table LIMIT 1");
}
}//xueroom
else{ //xueroom
if (isset($primary_key))
{
$primary_key = stripslashes($primary_key);
$result = mysql_db_query($db, "SELECT * FROM $table WHERE $primary_key");
// $result = mysql_db_query($db, $sql_query." WHERE $primary_key");
$row = mysql_fetch_array($result);
}
else
{
// $result = mysql_db_query($db, $sql_query." LIMIT 1");
$result = mysql_db_query($db, "SELECT * FROM $table LIMIT 1");
}
}//xueroom
在中间位置上修改为:
$f=0; //xueroom
for ($i=0;$i<mysql_num_rows($table_def);$i++)
{
$row_table_def = mysql_fetch_array($table_def);
if((!isset($sql_query))or($fields_def[$f]==$row_table_def['Field'])){ //xueroom
++$f; //xueroom
.........
echo "</tr>\n";
}//xueroom
}
由我增加的部分用“//xueroom”注标明。主要是思路是增加了一个判断:即是否有参量$sql_query传来,如果有,则是“选择/修改”,如果没有则与修改以前一样处理数据。
2001/1/3
|