我使用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--*/
答案 0 :(得分: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> -->";
答案 1 :(得分:0)
当代码做了你没想到的事情时 - 仔细检查你的假设。
1)确保$ messageid填充了您需要的内容
2)确保您返回的行不为空 - 即它仅处理数据为空
答案 2 :(得分:0)
我的建议是在PHPMyAdmin等MySQL应用程序中执行所有查询,并确保获得想要的结果。这就是我遇到查询问题时所做的事情,在应用程序中运行查询,所以我确信查询本身有效。如果您使用Mac我推荐Sequel Pro(它是免费的)。
对于延迟的帮助感到抱歉。