0

私はPHPスクリプトで少し立ち往生しています。

スクリプトはラジオ局用であり、次のことを行う必要があります。

  1. ラジオの司会者が当日のスロットを予約した回数を数えます。スロットはデータベースのテーブルに格納されており、コードdate("l")を使用して現在の日を判別し、「日」が値に設定されているすべての行を検索しますdate("l")

  2. 次に、プレゼンターがユーザー名を持つ行の「users」テーブルの「monthly_slots」列にすでに何時間保存しているかを確認する必要があります。"SELECT monthly_slots FROM users"

  3. 次に、プレゼンターが今日完了したスロットの量の値に、monthly_slots列にすでに存在するスロットの量を追加する必要があります。

以下はこれのための私のコードです

$currentday = date("l");
$currentslots = mysql_query("SELECT monthly_slots FROM users");
mysql_query("
    UPDATE users
    SET slots = (SELECT COUNT(*) + "$currentslots" 
                 FROM timetable 
                 WHERE timetable.username = users.username 
                   AND day = "$currentday"
                )
"); 

誰かが私がどこで間違っているのか見ることができますか?

ありがとう

4

3 に答える 3

1

リソースによって返される値を取得します

$currentday = date("l");
$result = mysql_query("SELECT monthly_slots FROM users");
$currentslots = mysql_fetch_assoc($result);


mysql_query("
    UPDATE users
    SET slots = (SELECT COUNT(*) + "$currentslots" 
                 FROM timetable 
                 WHERE timetable.username = users.username 
                   AND day = "$currentday"
                )
");
于 2012-05-06T13:28:06.840 に答える
0

$ currentslotsは数値ではなくmysqlリソースです。代わりに、mysql_num_rows($ currentslots)を使用してください。

于 2012-05-06T13:15:26.847 に答える
0

// 現在の日付

$currentday = date("l");

//ユーザーテーブルで時間数を検索します

$exec_monthlyslots = mysql_query("SELECT monthly_slots FROM users");
$currentslots=mysql_fetch_assoc($exec_monthlyslots);

//すべての列をカウントする代わりに、カウントする列IDを使用しますCOUNT(*)

$new_query="UPDATE users
            SET slots = (
                            (
                                SELECT COUNT(*)
                                FROM timetable 
                                WHERE timetable.username = users.username 
                                AND day = ".$currentday."
                            )
                            + ".$currentslots['monthly_slots']."
                        )
            ";

mysql_query($new_query);

これはあなたを助けるはずです。そうでない場合は教えてください。

于 2012-05-06T16:47:28.750 に答える