0

ログインしたユーザー情報のみを呼び出そうとしています。これまでのところ何も起きていません。何が間違っているのかわかりません。

<?php
session_start();
// Connects to your Database 
 mysql_connect("localhost", "megan", "megan") or die(mysql_error()); 
 mysql_select_db("megan") or die(mysql_error()); 

$id = $_SESSION['id_user']; //Get user's ID 
Print $id; //Test
$result = mysql_query("SELECT * FROM user WHERE id_user='" . $id . "'") 
or die(mysql_error());
$row = mysql_fetch_assoc($result); 

echo "Your user name is: <br>"; 
echo $row['username']; 

?>

提案でコードを更新しましたが、まだ機能しません

Select * from user を入力すると、ログインしているユーザーではなく、データベース全体が表示されます

4

3 に答える 3

1

この行を試してください。クエリ文字列が正しくなく、ユーザー ID の値を使用してクエリを行っているのではなく、文字列 '$id' を使用していると思います。

$result = mysql_query("SELECT * FROM user WHERE id_user='{$id}'");
于 2012-07-05T13:26:30.487 に答える
0

この拡張機能の使用はお勧めできません。代わりに、MySQLi または PDO_MySQL 拡張機能を使用する必要があります。

$sql = "SELECT `username` FROM user WHERE id_user = '$id' ";

$result = mysql_query($sql);

list($username) = mysql_fetch_row($result);

var_dump( $username ); // for test
于 2012-07-05T13:47:01.200 に答える
0

私はこのようにしたでしょう:

$result = mysql_query("SELECT * FROM user WHERE id_user=" . $id);

$id が数値ではなく文字列の場合...

$result = mysql_query("SELECT * FROM user WHERE id_user='" . $id . "'");

もちろん、行末に or die(mysql_error()) を作成することもできます。

于 2012-07-05T13:38:10.740 に答える