0

很难准确定位这段代码的问题所在。我期望它通过循环运行一定次数,并使用从表单接收到的一些值更新表 tbl_games 中的某些行。

我尝试在没有变量的情况下在 phpMyAdmin 中运行代码,效果很好(更新指定的行)。我认为问题与 $insert_q 中的字符串有关。

gamecount 将始终为 int<30,game_ID 将是 tbl_games 中唯一的主键整数值。

一点背景:这个代码是一个更大的项目的一部分——它以足球比赛为中心。管理员将游戏添加到 tbl_games(已编码并已完成),此当前文件现在向管理员显示未玩的游戏(team1 和 team2 的得分为 NULL)并为他们提供输入每个团队得分的空间。此代码采用这 2 个分数,以及 game_ID 并更新每一行。

但它对数据库行没有影响。请指出我正确的方向。

<?php
    $lim=$_SESSION['gamecount'];
    for ($i=1; $i<$lim; $i++) {
        $game_ID = ${"_SESSION['game".$i."_ID']"};
        $score_team_1 = ${"_REQUEST['".$i."_team1-score']"};
        $score_team_2 = ${"_REQUEST['game".$i."_team2-score']"};
        $insert_q = "UPDATE tbl_games SET team1_score = '$score_team_1', team2_score = '$score_team_2' WHERE game_ID = '$game_ID';";
        mysql_query($insert_q);
    }
    session_destroy();
?>
4

2 回答 2

0

I think the problem is with this line.

$game_ID = ${"POST['game".$i."_ID']"};

It should be something like this.

$game_ID = ${"_POST['game".$i."_ID']"}; or
$game_ID = $_POST['game'.$i.'_ID']; //much cleaner
于 2013-08-25T13:59:31.467 回答
0

您需要使用 mysql 报告。让它输出任何错误和受影响的行。虽然您可能认为受影响的行不会,但可能不会(在调试时检查总是很好,以便检查所有内容)。

您的 PHP 错误日志是否有任何警告或其他通知可能表明您的查询存在问题等?

您要更新的值是什么(回显 var/session)以及 DB 值是什么(在 phpmyadmin 或 mysql 命令行中查看)。可能没有什么可更新的。

于 2013-08-25T14:10:45.063 回答