0

オンライン/オフラインのステータスを作成しuser_statusたい、テーブルを作成し、ヘッダーのSQLクエリに追加して、ユーザーがページをロードするたびにテーブルがその時間で更新されるようにしたい;

user_status テーブルは次のとおりです。last_activity_time ; user_id表からusersです。

これをヘッダーに追加しました:

//check update last_time_active
$date = date("Y-m-d H:i:s");

$query = mysql_query("update user_status SET last_activity_time=$date ");
?>

どうすればユーザーも追加できますか? 彼がログインしている場合は、彼を確認し、と?user_idでテーブルを更新します。それが正しいか?user_idlast_activity_time

その後、特定のページにユーザー名 (オンライン/オフライン) の横にテキストを追加したいと考えています。

皆さんありがとう!

4

3 に答える 3

2

ログイン時にユーザーのユーザーIDを保存し$_SESSIONます。次に、それをプルしてクエリに挿入します。

<?php
//confirmed login, set $userid to the user's ID
session_start();
$_SESSION['userid'] = $userid;

次に、クエリは次のようになります ( UPDATED ):

// Since, according to your comment, $username = $_COOKIE['username']

"UPDATE user_status SET last_activity_time = NOW() where user_id = (SELECT userid FROM users WHERE username='" . $_COOKIE['username'] . "')";

ただし、関数はもう使用しないでください。mysql_*それらは廃止されています。代わりにPDOまたはmysqliを使用してください。どちらを使用すればよいかわからない場合は、 SO のこの記事をお読みください

于 2012-08-02T13:57:04.457 に答える
2

関数に関するPHPマニュアルの章の紹介で述べたようにmysql_*

この拡張機能は、新しいコードの作成にはお勧めできません。代わりに、mysqliまたはPDO_MySQL拡張機能を使用する必要があります。MySQL APIを選択する際のさらなるヘルプについては、 MySQL API の概要も参照してください。

PDO の使用:

$dbh = new PDO("mysql:host=$host;dbname=$db", $user, $pass);
$qry = $dbh->prepare('
  UPDATE user_status SET last_activity_time = NOW() WHERE user_id = ?
');
$qry->bindValue(1, $_SESSION['userid']);
$qry->execute();
于 2012-08-02T13:53:22.737 に答える
1

次のようなものが欲しいですか:

<?php
    $date = date("Y-m-d H:i:s");

    if(isset($_SESSION['userid']) 
    // or whatever you are using to see if the user is active?
    {
        $query = mysql_query("update user_status SET userID=".$_SESSION['userID'], last_activity_time=".$date.";");
    }

?>
于 2012-08-02T13:54:16.427 に答える