2013-05-03 21 views
0

我試圖一次更新11行 - 板球隊(11名球員)從表單頁面發佈之前,然後我想更新與這些球員調用的第一個表。 (該表包括玩家,訂單和團隊。)sql在php中更新多行大小寫

<?php 
session_start(); 

// Edit this to connect to your database with your username and password 
$db_name="a1467234_cricket"; // Database name 
$tbl_name="statistics"; // Table name 

// Connect to server and select databse. 
$conn = mysql_connect("mysql17.000webhost.com","*******","*******") or die(mysql_error()); 
mysql_select_db("$db_name")or die("cannot select DB"); 


$one = $_POST["one"]; 
$two = $_POST["two"]; 
$three = $_POST["three"]; 
$four = $_POST["four"]; 
$five = $_POST["five"]; 
$six = $_POST["six"]; 
$seven = $_POST["seven"]; 
$eight = $_POST["eight"]; 
$nine = $_POST["nine"]; 
$ten = $_POST["ten"]; 
$eleven = $_POST["eleven"]; 

$team = $_POST["team"]; 

$sql = "UPDATE first 
    SET player = (CASE 
     WHEN order = 1 ='$team' THEN '$one' 
     WHEN order = 2 AND team ='$team' THEN '$two' 
     WHEN order = 3 AND team ='$team' THEN '$three' 
     WHEN order = 4 AND team ='$team' THEN '$four' 
     WHEN order = 5 AND team ='$team' THEN '$five' 
     WHEN order = 6 AND team ='$team' THEN '$six' 
     WHEN order = 7 AND team ='$team' THEN '$seven' 
     WHEN order = 8 AND team ='$team' THEN '$eight' 
     WHEN order = 9 AND team ='$team' THEN '$nine' 
     WHEN order = 10 AND team ='$team' THEN '$ten' 
     WHEN order = 11 AND team ='$team' THEN '$eleven' 
     ELSE player 
    END 
    WHERE order IN (1,2,3,4,5,6,7,8,9,10,11))"; 

echo "Updated team selection"; 

mysql_close($conn); 

?> 

有沒有人知道如何獲取更新腳本的工作請?沒有錯誤顯示,它只是不會更改數據庫。

+0

您應該刪除證書...此外,您有一個結束語句,但沒有開始語句。我不是SQL大師,但我認爲它是必需的。 – Chad 2013-05-03 15:46:31

+0

第一個WHEN語句是否有語法錯誤? WHEN order = 1 ='$ team'THEN'$ one' – tylert 2013-05-03 15:48:40

+0

oh對不起,我只是改變了,沒有像其他人一樣獲得團隊是$團隊 – user2258954 2013-05-03 15:50:08

回答

0

使用for循環可能會更容易,更整潔,更智能地進行查詢。這可能對您沒有多大幫助:

<?php 
for($i=1;$i<$count;$i++) { 
     $updatesql="update first set player ='".$_POST['player_'.$i]"' where team ='".$_POST['team_'.$i]"' "; 
     mysql_query($updatesql); 

} 
?> 

您可能需要對此進行微小的修改。

例如。你需要以這種方式來發布數據:

PLAYER_1,player_2等,以及球隊在TEAM_1,TEAM_2等

1

你需要一個mysql_query($sql);到數據庫

0

bviously上執行查詢,你缺少結束後的右括號')'。 順便說一下,第一個案例條件(order = 1 ='$ team')似乎沒有任何意義。

無論如何,下面的查詢應該工作。請注意。 。 。將需要以與第一和第二參與者相同的模式進行填充。

$sql = " 
     UPDATE first a, 
       (
       SELECT 1 AS `order`, '{$one}' AS player, '{$team}' AS team 
       UNION ALL 
       SELECT 2 AS `order`, '{$two}' AS player, '{$team}' AS team 
       . 
       . 
       . 
       UNION ALL 
       SELECT 11 AS `order`, '{$eleven}' AS player, '{$team}' AS team 
      ) b 
      SET a.player = b.player 
     WHERE a.`order` = b.`order` 
      AND a.team = b.teamenter 
     "; 
+0

對不起,我意外地改變了,當它上傳與其他人一樣,我把它放在哪裏是錯的?謝謝 – user2258954 2013-05-03 16:05:09