2012-05-06 48 views
0

我有點卡在一個PHP腳本。PHP MySQL添加到數據庫中的現有值

的腳本是一個廣播電臺,它需要做到以下幾點:

  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" 
       ) 
"); 

代碼任何人都可以看到,我錯了?

感謝

+0

爲什麼不在查詢之外添加'''''''''''''''''''''''''''''''''''''',先計算出現的那個,然後給它加1。另外,正確的格式是'「。$ currentslots。」' – abhig10

+0

或者,因爲你使用的是雙引號,格式應該是:''普通文本$變量更正常的文本'' –

+0

也是,'$ currentslots'是一個資源變量,你必須先獲得行數。 – abhig10

回答

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" 
       ) 
"); 
+0

此刻當我運行與演示了多少插槽預訂的那一天它'monthly_slots'替換值的代碼行的數量進行更新。它不會將現有金額添加到該值 – Logan

0

$ currentslots是一個MySQL的資源不是一個數字,使用mysql_num_rows($ currentslots),而不是

+0

我會在哪裏使用它? – Logan

+0

$ currentlotsResult = mysql_query(「SELECT monthly_slots FROM users」); $ currentlots = mysql_num_rows($ currentslotsResult); –

+0

引起monthly_slots與那些在用戶表 – Logan

0

//當前日期

$currentday = date("l"); 

//查找users表中的小時數

$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); 

這會幫助你的。告訴我如果沒有。