質問
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--*/
解決
私のアドバイスは、PHPMyAdminなどのMySQLアプリケーションですべてのクエリを実行し、必要な結果を取得することです。クエリの問題に遭遇したとき、私は常にそれを実行します。アプリケーションでクエリを実行し、クエリ自体が機能することを確認します。 Macを使用する場合、Sequel Proをお勧めします(無料)。
遅れたヘルプは申し訳ありません。
他のヒント
まず、を使用する必要はありません。 (追加)$ messageid-vis:
$query = "SELECT * FROM `Messages` WHERE `id` = '$messageid'";
次に、実際に行を返したかどうかを確認します
そして、(ここにクリンチャーがあります) mysql_fetch_array()
の代わりに mysql_fetch_assoc()
を使用します-さもないと、フィールド名を取得できません。
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)$ messageidに必要なものが入力されていることを確認します
2)返す行がnullでないことを確認します-つまり、データのみが機能していることはnullです
所属していません StackOverflow