sql在php中更新多行大小写
问题描述:
我试图一次更新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);
?>
有没有人知道如何获取更新脚本的工作请?没有错误显示,它只是不会更改数据库。
答
使用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等
答
你需要一个mysql_query($sql);
到数据库
答
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
您应该删除证书...此外,您有一个结束语句,但没有开始语句。我不是SQL大师,但我认为它是必需的。 – Chad 2013-05-03 15:46:31
第一个WHEN语句是否有语法错误? WHEN order = 1 ='$ team'THEN'$ one' – tylert 2013-05-03 15:48:40
oh对不起,我只是改变了,没有像其他人一样获得团队是$团队 – user2258954 2013-05-03 15:50:08