簡體   English   中英

無法更新數據庫中的某些字段

[英]Can't update some fields in database

我正在創建一個在線游戲,但在更新數據庫中的某些字段時遇到問題。 這是表格和php代碼。

<form method='post'>
                <div style="float: left; width: 630px; color: white;">
                    <div style="float: left; width: 400px; background: #555; height: 20px;">
                        <?php
                        if ($row['Protected'] == 1)
                        {
                            ?>
                            <img src="images/pass.png"></img>
                            <input type="password" name="pass" placeholder="Password" style="height: 18px;" />
                            <?php
                        }
                        echo("<input type='submit' name='enter' style='background: #555; text-decoration: underline;' value='$row[Name]' />");
                        ?>
                    </div>
                    <div style="float: right; width: 229px; background: #555; margin-left: 1px; height: 20px;">
                        <?php
                        echo($row['NrPlayers']);
                        echo("/");
                        echo($row['MaxPlayers']);
                        echo(" Players");
                        ?>
                    </div>
                    <div style="clear: both;">
                        <?php
                        echo($row['Descr']);
                        ?>
                    </div>
                    <div style="background: #ccc; font-size: 13px; margin-bottom: 2px; color: black;">
                        <?php
                        echo($row['FName']);
                        echo(" ");
                        echo($row['LName']);
                        ?>
                    </div>
                    <input type="hidden" name="id" value="<?php$row['Id_Room']?>" />
                <input type="hidden" name="protect" value="<?php$row['Protected']?>" />
                <input type="hidden" name="password" value="<?php$row['Pass']?>" />
                <input type="hidden" name="nr" value="<?php$row['NrPlayers']?>" />
                </div>
            </form>
<?php
                if (isset($_POST['enter']))
                {
                    if ($_POST['protect'] == 1)
                    {
                        if ($_POST['pass'] == $_POST['password'])
                        {
                            $nr = $_POST['nr'] + 1;
                            mysql_query("upadte users set Id_Room = '$_POST[id]' where Id_User = '$_SESSION[id]'");
                            mysql_query("update rooms set NrPlayers = '$nr' where Id_Room = '$_POST[id]'");
                            header("Location: game.php");
                        }
                        else
                        {
                            ?>
                            <span style="color: red; text-align: center;">The password you entered is incorrect.</span>
                            <?php
                        }
                    }
                    else
                    if (($_POST['protect'] == 0))
                    {*/
                        $nr = $_POST['nr'] + 1;
                        mysql_query("upadte users set Id_Room = '$_POST[id]' where Id_User = '$_SESSION[id]'");
                        mysql_query("update rooms set NrPlayers = '$nr' where Id_Room = '$_POST[id]'");
                        header("Location: game.php");
                    }
                }
            ?>

有兩個更新和一個重定向。 因此,更新無效,但重定向有效。

第1步:

將表單提交到模板,然后轉儲表單范圍內的所有值,以確保從表單中獲得所需的信息。

第2步:

使用一些測試值在mysql工作台或php myAdmin之類的查詢編輯器中編寫查詢,以使您擁有有效的查詢。

第三步:

用php編寫生成查詢的代碼,而不是執行該代碼,將其轉儲到屏幕上。 執行此操作,直到輸出看起來像您在步驟2中設計的查詢為止。

第四步:

完成頁面並執行查詢,查找拼寫錯誤,語法錯誤和安全漏洞。 然后轉儲查詢的結果。

您需要檢查當前代碼中的內容:

mysql_query("upadte users set Id_Room = '$_POST[id]' where Id_User = '$_SESSION[id]'");

錯字-'upadte',內聯替換-Id_Room ='{$ _POST ['id']}''。

在發布大量代碼並尋求幫助之前,請務必先經過詳盡的調試步驟。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM