残念ながら私はまだ何かを見つけていない、誰かが私を助けたり、私にヒントを与えるかもしれない?MySQL CONCAT:文字列の最後にデータを追加し、サイズが超過した場合、最初にデータを削除する方法は?
私は、「users」という表と、最後の30回のログインのログイン日を保存するフィールド「last_login」を持っています。だから、それぞれの時間は、ユーザーがログインに成功すると、タイムスタンプは、文字列の末尾に追加する必要があり、それはこのようにSTHになります:
logdindate1; logindate2; logindate3; ...
.. logindatesは特定のサイズのタイムスタンプです。しかし、logindate31に達すると、logindate1を削除し、最後にlogindate31を追加する必要があります。
これは、MySQLクエリで非常に簡単に行う方法はありますか、またはPHPで長さをチェックする必要がありますか?はいの場合は、SELECTが必要ですか?次に長さを確認し、カットして別のUPDATEを実行しますか?それとも、それを行うための良い方法がありますか?
私が今まで持っているクエリは、(それは長さをチェックしたり、何かをカットしていません)です:
<?php $query = "UPDATE user SET login_date = CONCAT(login_date,'".$logindate.";') WHERE id='".$user_id."';"; ?>
事前にありがとうございました!
login-timesテーブルを作成し、ユーザーがログインするたびにレコードを追加することをお勧めします。このように1つの列を更新すると、より多くの問題が発生します。ログイン時間と使用制限を照会し、必要に応じて不要な古いレコードを削除してください – ManseUK
イギリスのManseにもありがとうございます。私はあなたのアイデアを得て、あなたはログイン日を持つ新しいテーブルを作成するのに非常に適しています...いつものように、ボックスの外を考えずにこの1つのソリューションを実現しようとしていたのはどうでしたか...ありがとう私を正しい道に導く! – Chris