1

好的,所以我的 header.php 中有一个数组“$landing”,然后在我的 page.php 中我包含 header.php 但由于某种原因,当我在 page.php 中调用数组中的“名称”字段时:echo $landing['Name'];它只是行不通。

这就是数组被填充的方式,并且在标题中调用它非常有效。

$landing = array();

while ($row = mysql_fetch_array($result)) {
   $str = strtolower($row['Name']);
   if ($str == $name) {
       $landing = $row;
   }
}

澄清一下,$row 和 $landing 都是数组,并且都有多个字段 'Name' 'Color' 'Info'。

我在这里做错了什么?我是否需要以某种方式使其全球化或发生了什么?

4

3 回答 3

3

正如 OP 在评论中所说,原始代码以某种方式工作。

但我的旧技巧仍然有效:

  • 考虑使用 MySQLi 或 PDO 代替已弃用的 MySQL 扩展!
  • 为什么要在客户端比较数据集的列值?您可以在 MySQL 端执行此操作,它会更快!
于 2013-08-27T19:55:08.613 回答
0

正如 ComFreek 正确指出的那样,您正在将 $landing 变成一个字符串。相反,如果您尝试向着陆数组添加条目,请使用 [] 括号,表示“添加到新条目”。

$landing = array();    
while ($row = mysqli_fetch_array($result)) {
   $str = strtolower($row['Name']);
   if ($str == $name) {
       $landing[] = $row;
   }
}
于 2013-08-27T19:57:14.323 回答
-1

我不能评论 LS97 帖子,无论如何你想使用 $landing["Name"] 你将 LS97 代码编辑成这样:

$landing = array();    
while ($row = mysqli_fetch_array($result)) {
   $str = strtolower($row['Name']);
   if ($str == $name) {
       $landing["name"] = $row;
   }
}

如果要使用多个名称,LS97 代码就可以了。

问题是他们所说的。(使用 $landing = $row,landing 将是一个字符串。)

于 2013-08-27T20:06:09.607 回答