0

メンバーのアカウントページで作業しています。ページは正常に機能し、テーブルにその人が登録した日付を表示する行があります。人々は注文をするでしょう、そして私は彼らのアカウントページに彼らの累積ポイントを表示したいと思います。私が書きたい関数は30日後、累積ポイントは0からやり直します。cPanelを使用してこのためのcronジョブを設定することを考えていました。しかし、日付関数を使用して30日が経過したかどうかをチェックする方法がわかりません。これは基本的に私がこれまでに持っている考え方です:

`<?php 
//connect to my database and run a query for the date I already have
//set the date to a variable using mysql_fetch_assoc(query)

//now the part where I need help for the function
if(registerdate == (registerdate+30days){
sql = mysql_query("UPDATE members SET accPoints='0' WHERE id='$userid' and username='$username'");
}
?>`

したがって、この関数のコードを手伝ってください。また、もう1つの簡単な質問:テーブルの列に複数のデータを入力し、それを取得して表示することは可能ですか?基本的に、1人の注文をすべて[注文]列に入力し、それを検索してメンバーページに表示しますか?前もって感謝します!

4

2 に答える 2

1

クエリ自体でそれを実行できるはずです。

"UPDATE members SET accPoints='0' WHERE id='$userid' and username='$username' AND registerdate + interval 30 DAY < NOW()"

2番目の質問:

私があなたを正しく理解しているなら、あなたは複数のデータを各ユーザーに関連付けたいと思うでしょう。そのためには、usersテーブルと多対多の関係を持つ別のテーブルを作成する必要があります。

注文(order_id、user_id、orderinfo、...)

次に、次のようにユーザー1によるすべての注文を照会できます。

SELECT o.* FROM users u, orders o WHERE u.user_id = 1 AND o.user_id = u.user_id
于 2012-12-18T19:34:13.430 に答える
0

さまざまなことができます。日付をstrtotimeを使用してUNIXタイムスタンプに変換し、秒数を追加してcronジョブがしきい値に達するかどうかを確認するか、日付を追加するか、純粋なSQLを使用してWHERE句に基づいて「ポイント」を必要とするすべてのユーザーを返すことができます。

于 2012-12-18T19:38:15.243 に答える