0

このコード ブロックの何が問題なのかを正確に特定するのは困難です。設定された回数ループを実行し、テーブル tbl_games のいくつかの行をフォームから受け取ったいくつかの値で更新することを期待しています。

変数なしで phpMyAdmin でコードを実行しようとしましたが、正常に動作します (指定された行を更新します)。問題は $insert_q の文字列に関係していると思います。

gamecount は常に int<30 になり、game_ID は tbl_games の一意の主キー整数値になります。

ちょっとした背景: このコードは、フットボールの試合を中心としたより大きなプロジェクトの一部です。管理者がゲームを tbl_games (コーディング済みで完成済み) に追加すると、この現在のファイルは管理者に未プレイのゲームを表示し (チーム 1 とチーム 2 のスコアは NULL)、各チームのスコアを入力するスペースを提供します。このコードは、これら 2 つのスコアと game_ID を取得し、各行を更新します。

ただし、DB行には影響しません。私を正しい方向に向けてください。

<?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

問題はこの行にあると思います。

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

このようなものでなければなりません。

$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 に答える