【问题标题】:PHP display problems revisited重新审视 PHP 显示问题
【发布时间】:2009-09-18 18:24:39
【问题描述】:

我正在使用 PHP 从 mysql 中提取消息以显示在特定页面上。而不是在指定的标题栏中显示消息的标题和在指定的正文文本框中显示消息......没有显示内容并且在url中显示标题。我的查询中缺少什么?或者是怎么回事?

/*--Here is my query--*/

$query = "SELECT * FROM `Messages` WHERE `id` = '" .$messageid. "'";
            $request = mysql_query($query,$connection) or die(mysql_error());
            $Readmessages = mysql_fetch_array($request);

             $query = "SELECT * FROM `Users` WHERE `id` = '".$Readmessages['sentFrom'] ."'";
             $request2 = mysql_query($query,$connection);
             $sender = mysql_fetch_array($request2);

/*--Here is my code--*/

【问题讨论】:

  • 那里的代码不多,目前...
  • 这应该刚刚放在你的最后一个问题中
  • 你能给我们看看页面的代码而不是 SQL 查询吗?请注意 - 您应该为此使用准备好的语句,因为您的查询容易受到 SQL 注入。

标签: php mysql post get


【解决方案1】:

首先,您不必使用 . (附加)在 $messageid - vis:

$query = "SELECT * FROM `Messages` WHERE `id` = '$messageid'";

其次,检查你是否真的返回了一行 并且,(这是关键)使用 mysql_fetch_assoc() 而不是 mysql_fetch_array() - 否则您将无法获得字段名称。

if ( $Readmessages = mysql_fetch_assoc($request) )
{
   $sentfrom = $Readmessages['sentFrom'];
   if (strlen($sentfrom) > 0)
   {
      $query = "SELECT * FROM `Users` WHERE `id` = '$sentfrom'";
      ...
   }
}

如果你想检查你的查询,你可以在你的html中输出,并查看源代码:

echo "<!-- <sql>$query</sql> -->";

【讨论】:

    【解决方案2】:

    我的建议是在 PHPMyAdmin 之类的 MySQL 应用程序中执行所有查询,并确保获得所需的结果。当我遇到查询问题时,我总是这样做,在应用程序中运行查询,所以我确信查询本身可以工作。如果你使用 mac,我推荐 Sequel Pro(它是免费的)。

    对于延迟的帮助,我们深表歉意。

    【讨论】:

      【解决方案3】:

      当代码做一些你不希望它做的事情时——仔细检查你的假设。

      1) 确保 $messageid 填充了您需要的内容

      2) 确保您返回的行不为空 - 即它的工作只是数据为空

      【讨论】:

      • 问题是它在我的浏览器中显示消息正文,而不是在指定正文区域中显示的位置
      猜你喜欢
      • 2010-11-26
      • 1970-01-01
      • 2023-03-19
      • 1970-01-01
      • 2012-03-20
      • 2011-01-23
      • 2020-07-20
      • 2012-12-06
      • 1970-01-01
      相关资源
      最近更新 更多