1

我有一个 php 脚本 (ini.php),它在“main.php”内的 iframe 中打开: <iframe src='ini.php' style='width:650px;' frameborder='0' id="IDMain" allowtransparency="YES" scrolling="NO"></iframe> SQL 不会检索“ini.php”中的数据。但是,如果我将“ini.php”的代码合并到“main.php”中,而不使用 iframe,则查询会检索所有信息。我必须有一个 iframe 才能更改同一个 iframe 中的所有不同脚本。这里有什么帮助吗?谢谢

此外更多信息:

登录后 main.php 处于会话中。以前我在每个脚本中都重复了整个框架,一切正常。main.php,ini.php,等等。每个脚本都有页眉、左、右、主要和页脚。为了让它更快更容易,我决定制作名为 main.php 的主脚本,其中包含一个名为 config.inc.php 的包含多个功能的脚本,还连接到数据库,以将一些数据检索到标题中,left ,主要区域(iframe)的右侧和页脚侧,其中其他不同的脚本,只是为了在 iframe 内部打开,维护周围的信息。在 iframe 中运行的每个脚本(如 ini.php)还包括 config.inc.php 文件,以连接到数据库。但不检索任何信息配置脚本中与数据库的连接是:

<$connect=mysql_connect ("localhost","database","password") or die ('I cannot connect to the database because: ' . mysql_error()); mysql_select_db ("database", $connect) or die ("'I cannot connect to the database "); >

ini,php(和其他)中的查询是:

`

 if ($id) { 
$id_session=$_SESSION['id_session'];
$namesession=$_SESSION['name_session'];
$sql="select * from data where id='$id_sessino' limit 1 ";
$result=mysql_db_query("database",$sql);
$regist=mysql_fetch_array($result);
$id=$regist["id"];
$id_session=$regist["id"];
$namesession=$regist["name_session"]; 
$country=$regist["country"];
And soo on…
} 

`

我希望通过信息可以清楚地说明我的意思。谢谢

4

2 回答 2

1

检查mysql_db_query的 PHP 帮助。由于你没有给它任何打开的数据库链接,它会尝试做一些默认的魔法,这可能会失败,因为正如我在评论中提到的,这两个脚本(在父窗口和 iframe 内)是单独运行的并且没有关于彼此的想法 *除非您正在进行一些同步,否则代码片段中不会显示。这意味着 iframe 脚本对您在父页面中打开的连接一无所知,因此失败。检查您的日志,您应该会看到一些E_WARNING投诉(如果您正在记录此级别)。

MySQLi此外,正如文档所述,使用或PDO_MySQL扩展可能会更好。但原则将保持不变 - questoin 中的脚本必须与数据库建立开放连接(我不确定您是否可以轻松安全地将开放从一个脚本转移到另一个脚本,所以您很可能必须在 iframe 脚本中完成所有操作)。

于 2012-11-10T22:53:57.360 回答
0

尝试两件事,首先我将 MySQL_fetch_array 部分更改为

While($regist = mysql_fetch_array($result))
{
//Code goes here
}

其次尝试将数组 vales 称为数字而不是名称,因此 regist['id'] 将变为 regist[0]。它们将按照数据库中的顺序排列。

另外,既然您在创建连接时选择了数据库,为什么不直接使用 mysql_query("QUERY HERE"); 而不是 mysql_db_query

于 2012-11-10T08:07:56.320 回答