PHP& SQL:更新记录问题

时间:2013-08-25 13:48:20

标签: php mysql

难以准确查明这段代码的错误。我期望它在一个循环中运行一定次数并更新表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();
?>

2 个答案:

答案 0 :(得分:0)

我认为问题在于这一行。

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

它应该是这样的。

$game_ID = ${"_POST['game".$i."_ID']"}; or
$game_ID = $_POST['game'.$i.'_ID']; //much cleaner

答案 1 :(得分:0)

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

您的PHP错误日志是否有任何警告或其他通知可能会导致您的查询出现问题等?

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