php - 代码逻辑不计算正确的数据

标签 php mysql

我非常希望有人能帮助我解决这个错误。不可否认,我是一个新手,我已经尝试了 60 多个小时来解决这个问题,但我就是做不到。

好的,开始了。

我有一张包含 20 支球队的足球联赛表。它有效,它很棒,快乐的日子。但是,我需要将其减少到 12 个团队。一个问题,因为我没有创建网站,其他人在一段时间前创建了。

所以我需要将一个表从 20 修改为 12。仅此而已。

吓坏了,我撸起袖子翻了一下代码,找到了这个位;

<?php 

$query = $SITE -> Query ( 'SELECT a.*, b.name, b.colour, b.txtcolour, 
(sum((a.wins*3) + (a.draws*1) - a.pts)) as points, 
(sum(a.wins + a.losses + a.draws)) as pld, 
(sum(a.glsfor - a.glsaga)) as gd 
FROM got_standings a 
inner join got_clubs b on (a.cid = b.id) 
WHERE a.season = "'.$url[2].'" 
GROUP BY a.cid 
ORDER BY points DESC, gd DESC, glsfor DESC' ); 

if ($SITE -> Count ($query) == 0) { 
$loop = 0; 

while($loop <= 19) { 
++$loop; 
?> 

在这 60 个小时里,经过反复试验,我一直在努力解决,我改变了;

while($loop <= 19)

到;

while($loop <= 11)

瞧,系统现在提示我将 12 支球队输入联赛表,而不是 20 支球队。太棒了。或者我想...

当我第一次将数据输入表格并“提交”时,它起作用了——当在上述更改之前列出了 20 个团队时它完美地完成了。但是,当我“更新”/对联赛表进行任何持续更改时,它还会计算之前的

所以对于“塔尔伯特港镇”,我输入“1 胜”、“1 平”、“1 负”、“5 个进球”、“5 个失球” 它有效。它计算了 3 场比赛和 4 分(赢 3 分,平局 1 分,负 0 分)as shown here .

但是,当我随后输入其他信息时,即为“Aberystwyth Town”和“update”输入相同的信息时,是否会再次计算先前数据(塔尔伯特港镇)的信息? as shown here .

我完全不知所措。如果有任何帮助,我将非常感激和感激。

整个代码粘贴在底部。

拜托各位!帮助一个白痴! 8)

<?php   
} 
} else if ($url[3] == 'league') { 
if ($url[4] == 'standings') { 
?> 
<ul class="buttonbar"> 
<li class="button"><a href="<?=$CONF['site']; ?>sitecontrol/fixtures/<?=$url[2]; ?>/add/league">Add Fixture</a></li> 
<li class="button"><a href="<?=$CONF['site']; ?>sitecontrol/fixtures/<?=$url[2]; ?>/league/standings">Standings</a></li> 
</ul> 
<form action="<?=$CONF['site']; ?>mcms/applications/fixtures/submit.php?do=fixtures&amp;action=standings&amp;season=<?=$url 

[2]; ?>&amp;comp=<?=$url[3]; ?>" method="post" name="standings"> 
<div class="table"> 
<div class="th">Welsh Premier League Standings</div> 
<ul class="tr shadow"> 
<li class="td-squadno">Pos.</li> 
<li class="td4" style="width: 170px;">Team</li> 
<li class="td4">PLD</li> 
<li class="td4">W</li> 
<li class="td4">D</li> 
<li class="td4">L</li> 
<li class="td4">+</li> 
<li class="td4">-</li> 
<li class="td4">PTS</li> 
</ul> 
<?php 

$query = $SITE -> Query ( 'SELECT a.*, b.name, b.colour, b.txtcolour, 
(sum((a.wins*3) + (a.draws*1) - a.pts)) as points, 
(sum(a.wins + a.losses + a.draws)) as pld, 
(sum(a.glsfor - a.glsaga)) as gd 
FROM got_standings a 
inner join got_clubs b on (a.cid = b.id) 
WHERE a.season = "'.$url[2].'" 
GROUP BY a.cid 
ORDER BY points DESC, gd DESC, glsfor DESC' ); 

if ($SITE -> Count ($query) == 0) { 
$loop = 0; 

while($loop <= 11) { 
++$loop; 
?> 
<ul class="tr" id="team_<?=$loop; ?>"> 
<li class="td-squadno"><?=$loop; ?></li> 
<li class="td2" style="width: 170px;"> 
<?php 

echo ( ' 
<select name="cid[]"> 
' ); 

$sql = $SITE -> Query ( 'SELECT id, name FROM got_clubs WHERE country = "Wales" ORDER BY name ASC' ); 

while($club = $SITE -> FetchArray($sql)) { 
echo ( '<option value="'.$club['id'].'"' ); 
if ($club['id'] == '1') echo ( ' SELECTED' ); 
echo ( '>'.$club['name'].'</option>' ); 
} 

echo ( ' 
</select> 
' ); 

?> 
</li> 
<li class="td4"></li> 
<li class="td4"><a href="#" onclick="$('ul#team_<?=$loop; ?> li.td4 input[name=wins[]]').val(parseInt($('ul#team_<? 

=$loop; ?> li.td4 input[name=wins[]]').val())+1); return false;">+</a> <input type="text" name="wins[]" value="0" /></li> 
<li class="td4"><a href="#" onclick="$('ul#team_<?=$loop; ?> li.td4 input[name=draws[]]').val(parseInt($('ul#team_<? 

=$loop; ?> li.td4 input[name=draws[]]').val())+1); return false;">+</a> <input type="text" name="draws[]" value="0" /></li> 
<li class="td4"><a href="#" onclick="$('ul#team_<?=$loop; ?> li.td4 input[name=losses[]]').val(parseInt 

($('ul#team_<?=$loop; ?> li.td4 input[name=losses[]]').val())+1); return false;">+</a> <input type="text" name="losses[]" 

value="0" /></li> 
<li class="td4"><a href="#" onclick="$('ul#team_<?=$loop; ?> li.td4 input[name=glsfor[]]').val(parseInt 

($('ul#team_<?=$loop; ?> li.td4 input[name=glsfor[]]').val())+1); return false;">+</a> <input type="text" name="glsfor[]" 

value="0" /></li> 
<li class="td4"><a href="#" onclick="$('ul#team_<?=$loop; ?> li.td4 input[name=glsaga[]]').val(parseInt 

($('ul#team_<?=$loop; ?> li.td4 input[name=glsaga[]]').val())+1); return false;">+</a> <input type="text" name="glsaga[]" 

value="0" /></li> 
<li class="td4">- <input type="text" name="pts[]" /></li> 
</ul> 
<?php 
} 
} else { 
$loop = 0; 

while($row = $SITE -> FetchArray($query)) { 
++$loop; 
?> 
<ul class="tr" id="team_<?=$loop; ?>"> 
<li class="td-squadno"><?=$loop; ?></li> 
<li class="td-club" style="width: 160px; margin-left: 10px; background-color: #<?=$row['colour']; ?>; color: #<? 

=$row['txtcolour']; ?>;"><?=$row['name']; ?><input type="hidden" name="cid[]" value="<?=$row['cid']; ?>" /></li> 
<li class="td4"><?=$row['pld']; ?></li> 
<li class="td4"><a href="#" onclick="$('ul#team_<?=$loop; ?> li.td4 input[name=wins[]]').val(parseInt($('ul#team_<? 

=$loop; ?> li.td4 input[name=wins[]]').val())+1); return false;">+</a> <input type="text" name="wins[]" value="<?=$row 

['wins']; ?>" /></li> 
<li class="td4"><a href="#" onclick="$('ul#team_<?=$loop; ?> li.td4 input[name=draws[]]').val(parseInt($('ul#team_<? 

=$loop; ?> li.td4 input[name=draws[]]').val())+1); return false;">+</a> <input type="text" name="draws[]" value="<?=$row 

['draws']; ?>" /></li> 
<li class="td4"><a href="#" onclick="$('ul#team_<?=$loop; ?> li.td4 input[name=losses[]]').val(parseInt 

($('ul#team_<?=$loop; ?> li.td4 input[name=losses[]]').val())+1); return false;">+</a> <input type="text" name="losses[]" 

value="<?=$row['losses']; ?>" /></li> 
<li class="td4"><a href="#" onclick="$('ul#team_<?=$loop; ?> li.td4 input[name=glsfor[]]').val(parseInt 

($('ul#team_<?=$loop; ?> li.td4 input[name=glsfor[]]').val())+1); return false;">+</a> <input type="text" name="glsfor[]" 

value="<?=$row['glsfor']; ?>" /></li> 
<li class="td4"><a href="#" onclick="$('ul#team_<?=$loop; ?> li.td4 input[name=glsaga[]]').val(parseInt 

($('ul#team_<?=$loop; ?> li.td4 input[name=glsaga[]]').val())+1); return false;">+</a> <input type="text" name="glsaga[]" 

value="<?=$row['glsaga']; ?>" /></li> 
<li class="td4"><?=$row['points']; ?> (- <input type="text" name="pts[]" value="<?=$row['pts']; ?>" />)</li> 
</ul> 
<?php 
} 
} 

?> 
<div class="tf"><input type="submit" value="Update Standings" /> or <a href="<?=$CONF['site']; ?>sitecontrol/fixtures/<? 

=$url[2].'/'.$url[3]; ?>">Cancel</a></div> 
</div> 
</form> 
<p>Do not use the points column for anything other than points deductions. If a points deduction is carried out by the 

Premier League, use the input box to enter how many points have been taken away, e.g. Portsmouth in 2009/10 would have 

&quot;9&quot; in their points input box.</p> 
<p>Matches played and points columns will update automatically. The position of each team in the league table will also be 

automatically updated.</p> 
<?php 
} else { 
?> 
<ul class="buttonbar"> 
<li class="button"><a href="<?=$CONF['site']; ?>sitecontrol/fixtures/<?=$url[2]; ?>/add/league">Add Fixture</a></li> 
<li class="button"><a href="<?=$CONF['site']; ?>sitecontrol/fixtures/<?=$url[2]; ?>/league/standings">Standings</a></li> 
</ul> 
<div class="table"> 
<div class="th">Premier League Fixtures</div> 
<?php 
$query = $SITE -> Query ( ' 
SELECT a.id, a.rid, home, away, homescore, awayscore, date, b.name as hometeam, c.name as awayteam FROM 

got_fixtures a 
inner join got_clubs b on (a.home = b.id) 
inner join got_clubs c on (a.away = c.id) 
WHERE a.cid="1" AND a.season = "'.$url[2].'" AND (a.home = "1" OR a.away = "1") 
ORDER BY date ASC' ); 

while($row = $SITE -> FetchArray($query)) { 
?> 
<ul class="tr"> 
<li class="td-squadno"><?=$row['rid']; ?></li> 
<li class="td-home"><?=$row['hometeam']; ?></li> 
<li class="td-score"><?=$row['homescore']; ?> - <?=$row['awayscore']; ?></li> 
<li class="td-away"><?=$row['awayteam']; ?></li> 
<li class="td-kickoff"><?=date('D. jS F y, H:i', $row['date']); ?></li> 
<li class="td-end"><a href="<?=$CONF['site']?>sitecontrol/fixtures/<?=$url[2]; ?>/edit/<?=$url[3]; ?>/<?=$row['id']; 

?>">Edit</a> or <a href="<?=$CONF['site']; ?>mcms/applications/fixtures/submit.php?do=fixtures&amp;action=delete&amp;id=<? 

=$row['id']; ?>&amp;comp=<?=$url[3]; ?>&amp;season=<?=$url[2]; ?>">Remove</a></li> 
</ul> 
<?php   
} 
?> 
<div class="tf"></div> 
</div>

最佳答案

听起来好像没有将它正确地插入到数据库中。查找其中包含 INSERT 或 UPDATE 的 SQL 查询。

上面代码中的 SQL 显示的是数据库中的数据,而不是添加数据。你的问题将在别处。由于从数据库中提取的 while 循环被硬编码为值 19,因此更新代码可能也是如此。

同时登录到您的主机帐户,转到 PhpMyAdmin,并查看数据库本身。看看它是如何设置的。

关于php - 代码逻辑不计算正确的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5212729/

相关文章:

php - MySQL数据库表中找不到数据,如何编写php代码?

php - 在每三个字符之间放置破折号

php - CodeIgniter 上的 MySql 脚本更新

javascript - PHP 查询执行没有错误但返回计数 0

mysql - 通过连接两个表来更新所有字段值

php - 在 php 中使用 file_get_content 时如何保留缩进?

php - PDO 将撇号添加到 mySQL 查询

php - 在关联数组的第二个元素处开始 foreach 循环

mysql - 通过时间戳获取服务请求的平均到达间隔时间

mysql - 我可以使用 mysql 来存储图像并将它们加载到我的 ios 应用程序吗?