我最近創建了一個錦標賽括號,其中這是SQL。更新多行查詢
CREATE TABLE `".TABLE_PREFIX."tnybracket` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(64) NOT NULL,
`gid` int(11) NOT NULL,
`tid` int(11) NOT NULL,
`round` int(11) NOT NULL,
`position` int(11) NOT NULL,
`player1` varchar(64) NOT NULL,
`player1uid` varchar(64) NOT NULL,
`player1gt` varchar(64) NOT NULL,
`player2` varchar(64) NOT NULL,
`player2uid` varchar(64) NOT NULL,
`player2gt` varchar(64) NOT NULL,
`winner` varchar(64) NOT NULL,
`winneruid` varchar(64) NOT NULL,
`winnergt` varchar(64) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
我把它設置爲那裏是這些8位,從1經歷8.正如你可以在這裏看到,http://i.gyazo.com/d106e9bac3f4a24f5253a36c498bbedf.png,有8個正確的位置編號空行。現在我試圖做一個更新查詢,它試圖向成員註冊一個成員。但是,在更新用戶名之前,有幾件事需要確定。如果所有player1和player2行都是空的,則根據位置將「用戶名」更新爲player1。 (所以,如果全部都是空的,它會因爲訂單而進入位置1)。然而,如果除了位置1的玩家1之外的所有物品都是空的,那麼它需要將玩家2更新爲位置1.之後,它將繼續前進,直到所有8個位置都按順序填充。 因此,當用戶註冊後,我試圖運行此代碼:
$sql = 'UPDATE MyBB_tnybracket
SET player1="$username"
WHERE round=1';
然而,這顯然是不對的。我需要檢查玩家1和玩家2是否爲空,然後確定要進入哪一個。這是我在完全陷入僵局之前得到的。任何幫助將不勝感激。
編輯: 由於這是相當混亂,我會進一步詳細。下面是表: http://i.gyazo.com/d106e9bac3f4a24f5253a36c498bbedf.png 這裏是它的外觀在我的網站 http://i.gyazo.com/19197e2bda98d8ae4cb3438272f6f10b.png
我已經插入必要的比賽中的所有行,他們只是空白。現在,當成員註冊參加比賽時,我需要在玩家1或玩家2中插入他們的用戶名。例如,如果比賽的所有空白行沒有信息(如表中所示),那麼用戶名但是如果另一個人註冊(而其他人只有2人),那麼他的信息將不得不進入同一行中的玩家2。但是,如果第三方註冊,他將不得不再次進入新的一行,作爲玩家1。而週期基本上重新開始,第四人在新一輪的Player下。
請問您可以爲您的數據創建[sql小提琴](http://sqlfiddle.com/)並請[上傳圖片](http://meta.stackexchange.com/a/75498/218121)到stackoverflow – Ram 2014-10-18 09:11:07
使用一個程序,它會解決你的問題 – 2014-10-18 10:05:12
我試圖添加更多的信息,以幫助你們確定我的問題。 – 2014-10-18 16:16:14