1

比較的初心者なので、間違った投稿をしていたらすみません。ID、入力時間、ユーザー、メッセージ (基本的なチャット ルーム スタイルのもの) の 4 つを保持するテーブルをデータベースに持っています。PHPページを使用してこれらを呼び出そうとしています。しかし、アドレスバーに引数を入力すると、ページが空白になります。ユーザー列に特定のユーザーが含まれる行のみが表示されるように、それを呼び出そうとしています。私のコードは以下のとおりです - 誰が私が間違っているのか分かりますか? ファイルの URL はhttp://freedom-apps.co.uk/chat/messages.phpです。大量のエントリが表示されます。最初に、umumu m があります。U は入力したユーザーを表し、m はメッセージです。だから私は試してみました: http://freedom-apps.co.uk/chat/messages.php?user=u エラーを返します。何か案は?私のコードは次のとおりです。

<?php
header( 'Content-type: text/xml' );
mysql_connect('localhost:/var/lib/mysql/mysql.sock', 
              'freedom_ASAPPS', '********');
mysql_select_db( 'freedom_chat_alpha' );
if ( $_REQUEST['user'] ) {
    $user = mysql_escape_string($_REQUEST['user']);
    $result = mysql_query('SELECT * FROM chatitems WHERE user = '$user' 
              ORDER BY added LIMIT 50');
} else {
    $result = mysql_query('SELECT * FROM chatitems ORDER BY added LIMIT 50');    
}
?>
<chat>
<?php
while ($row = mysql_fetch_assoc($result)) {
?>
<message added="<?php echo( $row['added'] ) ?>" 
    id="<?php echo( $row['id'] ) ?>">
    <user><?php echo( htmlentities( $row['user'] ) ) ?></user>
    <text><?php echo( htmlentities( $row['message'] ) ) ?></text>
</message>
<?php
}
var_dump($result);
mysql_free_result($result);
?>
</chat>

6行目と7行目、または引数を使用してphpページを呼び出す方法に問題があると思います(上記を参照)。このことを学ぶために使用した本を参照していますが、まだ理解できません (PHP、MySQL、および JavaScript の学習: 動的 Web サイトを作成するためのステップバイステップガイド)。

ありがとう、サム

4

1 に答える 1

6
$result = mysql_query('SELECT * FROM chatitems WHERE user = '$user' ORDER BY added LIMIT 50');

これは構文エラーです。文字列連結演算子がありません:

$result = mysql_query('SELECT * FROM chatitems WHERE user = ' . $user . ' ORDER BY added LIMIT 50');
                                                            ^^^------^^^^--- here

または、二重引用符で囲まれた文字列を使用します。

$result = mysql_query("SELECT * FROM chatitems WHERE user = '$user' ORDER BY added LIMIT 50");

空白のページが表示される場合は、php.ini で display_errors がオフになっていることを示しています。デバッグ/開発中はこれをオンにする必要があります。問題が何であったかを伝えるメッセージそのものを隠して、自分の足を撃っているだけです。

于 2012-07-14T17:13:19.010 に答える