我正在尝试为我和朋友制作星际2锦标赛网站。
我坚持参加锦标赛系统。
我有一个jquery脚本制作一个括号,但我无法弄清楚我怎么能用我的数据库和php来填充它:(
我想问你一些问题。
我有这个html和jquery脚本。
我的mysql数据库是这样的
tournamenttree
id - UserID - TournamentID - Round
1 - 1 - 1 - 1
2 - 15 - 1 - 1
3 - 17 - 1 - 1
4 - 25 - 1 - 1
和
tournaments
id - tournamentname - createdtime - players - active
1 -Sunday Cup - time() - 4 - 1
和用户表
<?php
$link = mysql_connect( '', '', '' );
if ( !is_resource( $link ) ) die( 'MySQL Connect Error' );
if ( !mysql_select_db( 'db6968_game', $link ) ) die( 'MySQL DB Error' );
mysql_query( "SET CHARACTER SET UTF8" );
mysql_query( "SET collation_connection = 'utf8_turkish_ci'" );
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-us">
<head>
<title>MyTournamentName</title>
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js' type='text/javascript'>
</script>
<script src='http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js' type='text/javascript'>
</script>
<style type="text/css">
.tournament {
background-color: #F0F0F0;
border: dashed 1px solid;
overflow: auto;
}
.tournament .bracket {
background-color: #DFDFDF;
min-width: 100px;
vertical-align: top;
float: left;
}
.tournament .bracket .match {
background-color: #D0D0D0;
border-top: 1px solid;
border-right: 1px solid;
border-bottom: 1px solid;
}
.tournament .bracket .match .p1 {
height: 20px;
}
.tournament .bracket .match .p2 {
height: 20px;
}
.tournament .bracket .match .spacer {
background-color: #DFDFDF;
height: 38px;
}
.tournament .bracket .spacer {
height: 80px;
}
.tournament .bracket .half-spacer {
height: 40px;
}
.tournament .bracket .small-spacer {
height: 10px;
background-color: #F1F1F1;
}
.tournament .bracket .winner {
border-bottom: 1px solid;
}
.left-line {
border-left: 1px solid;
}
.tournament .cell {
min-width: 100px;
height: 20px;
float: left;
background-color: #DFDFDF;
}
.tournament .l2 {
background-color: #D0D0D0;
}
.tournament .lmax {
width: 0px;
clear: both;
}
</style>
<script type="text/javascript">
var matchInfo = {
"rounds" : [
{ "name": "Round1", "matches" : [
{ "id" : 1, "p1" : "mTwDeMuslim", "p2" : "Luffy" },
{ "id" : 2, "p1" : "SeleCT", "p2" : "NEXGenius" },
{ "id" : 3, "p1" : "Fenix", "p2" : "SoftBall" },
{ "id" : 4, "p1" : "White-Ra", "p2" : "Ice" },
{ "id" : 5, "p1" : "HuK", "p2" : "RedArchon" },
{ "id" : 6, "p1" : "Capoch", "p2" : "Loner" },
{ "id" : 7, "p1" : "mTwDIMAGA", "p2" : "MakaPrime" },
{ "id" : 8, "p1" : "TLAF-Liquid`TLO", "p2" : "SEN" }
]
},
{ "name": "Round2",
"matches" : [
{ "id" : 9, "p1" : null, "p2" : null },
{ "id" : 10, "p1" : null, "p2" : null },
{ "id" : 11, "p1" : null, "p2" : null },
{ "id" : 12, "p1" : null, "p2" : null }
]
},
{ "name": "Round3",
"matches" : [
{ "id" : 13, "p1" : null, "p2" : null },
{ "id" : 14, "p1" : null, "p2" : null },
]
},
{ "name": "Round4",
"matches" : [
{ "id" : 15, "p1" : null, "p2" : null },
]
}
]
};
$(document).ready(function($) {
var base = $('#writeHere');
var matchDivsByRound = [];
for (var roundIndex=0; roundIndex<matchInfo.rounds.length; roundIndex++) {
var round = matchInfo.rounds[roundIndex];
var bracket = checkedAppend('<div class="bracket"></div>', base);
var matchDivs = [];
matchDivsByRound.push(matchDivs);
//setup the match boxes round by round
for (var i=0; i<round.matches.length; i++) {
var vOffset = checkedAppend('<div></div>', bracket);
var match = round.matches[i];
var matchHtml = '<div class="match" id="match' + match.id + '">'
+ '<div class="p1">' + fmtName(match.p1) + '</div>'
+ '<div class="spacer"></div>'
+ '<div class="p2">' + fmtName(match.p2) + '</div>';
matchDiv = checkedAppend(matchHtml, bracket);
matchDivs.push(matchDiv);
if (roundIndex > 0) {
//row 2+; line up with previous row
var alignTo = matchDivsByRound[roundIndex-1][i*2];
//offset to line up tops
var desiredOffset = alignTo.position().top - matchDiv.position().top;
//offset by half the previous match-height
desiredOffset += alignTo.height() / 2;
vOffset.height(desiredOffset);
} else {
checkedAppend('<div class="small-spacer"></div>', bracket);
}
if (roundIndex > 0) {
//tweak our size so we stretch to the middle of the appropriate element
var stretchTo = matchDivsByRound[roundIndex-1][i*2+1];
var newH = stretchTo.position().top + stretchTo.height()/2 - matchDiv.position().top;
var deltaH = newH - matchDiv.height();
matchDiv.height(newH);
var spacer = matchDiv.find('.spacer');
spacer.height(spacer.height() + deltaH);
}
}
}
//setup the final winners box; just a space for a name whose bottom is centrally aligned with the last match
bracket = checkedAppend('<div class="bracket"></div>', base);
var vOffset = checkedAppend('<div></div>', bracket);
var alignTo = matchDivsByRound[matchInfo.rounds.length - 1][0]; //only 1 match in the last round
var html = '<div class="winner">?</div>';
var winnerDiv = checkedAppend(html, bracket);
vOffset.height(alignTo.position().top - winnerDiv.position().top + alignTo.height() / 2 - winnerDiv.height());
});
function fmtName(name) {
return null != name ? name : '?';
}
function checkedAppend(rawHtml, appendTo) {
var html = $(rawHtml);
if (0 == html.length) {
throw "Built ourselves bad html : " + rawHtml;
}
html.appendTo(appendTo);
return html;
}
</script>
</head>
<body>
<div>blah blah blah</div>
<div id="writeHere" class="tournament"></div>
<div>blah blah blah</div>
</body>
</html>
我试图这样做
<?php
function getusername($id){
$sql = mysql_query("SELECT * FROM users WHERE UserID = '".$id."'");
$ROW = mysql_fetch_assoc($sql);
$data = $ROW['Username'];
return $data;
}
?>
var matchInfo = {
"rounds" : [
{ "name": "Round1", "matches" : [
<?php
for ($i = 0; $i < $num_rounds; ++$i)
{
$matches = $teams * pow(.5, $i - 1) / 2;
$ROW = mysql_fetch_array($sql);
for ($j = 0; $j < $matches; ++$j)
{
echo '{ "id" : '.$j.', "p1" : "'.$ROW['UserID'].'", "p2" : "'.$ROW['UserID' + $j - 1].'" }';
echo $coma = ',';
}
echo $coma= '';
}?>
但它给了我这个
var matchInfo = {
"rounds" : [
{ "name": "Round1", "matches" : [
{ "id" : 0, "p1" : "1", "p2" : "" },{ "id" : 1, "p1" : "1", "p2" : "2" },{ "id" : 2, "p1" : "1", "p2" : "1" },{ "id" : 3, "p1" : "1", "p2" : "1" },{ "id" : 0, "p1" : "15", "p2" : "" },{ "id" : 1, "p1" : "15", "p2" : "3" },{ "id" : 0, "p1" : "17", "p2" : "" },
]
},
根据我的数据库有4个团队,但我的PHP脚本给了我7个匹配。它应该只有2场比赛。我们有4支球队。
我无法弄清楚这一点。有人可以给我一个想法或帮助我吗?感谢