bugfix> php > 投稿

定期的な間隔でユーザーLANとログを更新するテーブルtracking_tableがあり、データテーブルは次のようになります。

Id  Username    Log     Lan   Timestamp
1   User1      1.555        3.55       12:00PM
2   User2       3.55        4.55       12:10PM
3   User1       6.55    8.66       1:30PM
4   User2       7.88        9.68    2:10PM

同じユーザーデータが複数回更新されます。

だから、 select * from tracking_table where username="user1" を使用できますかすべての行からその特定のユーザーのすべてのLANとログを取得するには?

回答 1 件
  • はい、基本的に自分の質問に答えました。ただし、少し複雑です。あなたが正しい軌道に乗っている間、WHERE句で使用するものに対する論理的な解決策は、ユーザー名を使用するため、問題になる可能性があります。ここで、「同じ」ユーザーを指定しました。だが!別の人が同じ名前を持っている場合はどうしますか?その後、問題が発生します。最善の方法は、ユーザーIDを渡すことです。これは一意であり、そのユーザーのみからデータを取得するようにします。

    //You'll have to implement a userId field in your table(s)
    SELECT * FROM tracking_table WHERE userId='1';
    
    

    PHPをタグに追加したので、後でPHPで使用する必要があるかどうか疑問に思っていますか?

    その場合、構文(mysql_/mysqli_/PDO)に応じて、後で使用するためにそれらをPHP変数に保存できます。

    mysql_構文:

    <?php
    //Note that mysql_ is deprecated. I simply just included this in case.
    //Select statement
    $sql="SELECT * FROM tracking_table WHERE userId='1'";
    //Result set from your select
    $result=mysql_query($sql);
    //The rows of data
    $row=mysql_fetch_array($result);
    //Row data stored as variables
    $id=$row['Id'];
    $username=$row['Username'];
    $log=$row['Log'];
    $lan=$row['Lan'];
    $timestamp=$row['Timestamp'];
    ?>
    
    

    mysqli_構文:

    <?php
    /*
    $conn is the database connection variable from you config.php
    (assuming that's the name of the include file for your database connection)
    */
    //Select statement
    $sql="SELECT * FROM tracking_table WHERE userId='1'";
    //Result set from your select
    $result=mysqli_query($conn, $sql);
    //The rows of data
    $row=mysql_fetch_array($conn, $result);
    //Row data stored as variables
    $id=$row['Id'];
    $username=$row['Username'];
    $log=$row['Log'];
    $lan=$row['Lan'];
    $timestamp=$row['Timestamp'];
    ?>
    
    

あなたの答え