2

HTML からの値で MySQL テーブルを更新し、PHP で処理するスクリプトがあります。テーブルにある編集リンクをクリックすると、MySQL データベースから取得したレコードを表示する編集ページにリダイレクトされますが、レコードは更新されません。

ここに私のリンクコードがあります:

echo "<td><a href=\"cityproc.php?accode=$row[accode]\"><img src='images/edit.png'></a></td>";

ここに私の編集ページのコードがあります:

<?php
session_start();
if (!isset($_SESSION["username"])) {
    header("Location: unauthorize_access.php");
}
mysql_connect("localhost", "root", '')or die(mysql_error());
mysql_select_db("webapp") or die(mysql_error());

$accode = mysql_real_escape_string($_REQUEST['accode']); // is used for both $_GET/$_POST variables

if(isset($_POST['submit']))
{

          $city = mysql_real_escape_string($_POST['city']);
          $result = mysql_query("UPDATE `city` SET `name`='$city' WHERE accode='$accode'") or die(mysql_error());

          echo "<b>Thank you! Record UPDATED Successfully!<br>You'll be redirected to Home Page after (1) Seconds";
          echo "<meta http-equiv=Refresh content=1;url=table.php>";
}
elseif($accode)
{

        $result = mysql_query("SELECT * FROM city WHERE accode='$accode' ");
        $myrow = mysql_fetch_assoc($result);

                $code = $myrow["code"];
                $city = $myrow["name"];
?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<link rel="stylesheet" type="text/css" href="form2/view.css" media="all">
<script type="text/javascript" src="form2/view.js"></script>
<script type="text/javascript" src="form2/calendar.js"></script>
</head>
<body id="main_body" >

    <img id="top" src="form2/top.png" alt="" />
    <div id="form_container">

        <h1><a>City</a></h1>
        <form id="city" class="appnitro" enctype="multipart/form-data" method="post" action="cityproc.php">
                    <div class="form_description">
        <h2>City</h2>
                <table border="0" width="100%">
                    <tr>
                        <td><?php echo $accode; ?></td>
                    </tr>
            </table>

        </div>
                    <table border ="0px" width="100%">
                        <input type="hidden" value="<? echo $myrow['accode']?>" name="accode"></input> 
                        <tr>
                            <td><label class="description" for="element_1">Code</label></td><td><input  name="code"  type="text" maxlength="6"  Placeholder="Please enter a code" value="<?php echo $code; ?>" disabled="disabled" /></td>
                        </tr>
                        <tr>
                            <td><label class="description" for="element_1">Name</label></td><td><input  name="city" size="40" type="text" maxlength="40" Placeholder="Please enter a name" value="<?php echo $city; ?>"/></td>

                        </tr>
                        <tr>
                            <td></td><td colspan="2" align="center"><input type="submit" name="submit" value="Save" /></td>
                        </tr>
                    </table>
                </form>
                </body>
    </html>
<?php
}
?>
4

4 に答える 4

1

すべてのコードを同じページに記述したので、ここにフォームアクションを記述する必要はありません。送信すると、ページが自動的に更新されます。これを1回実行し、印刷してコードをデバッグし、print_r($_POST)データを取得するかどうかを確認してください。

また、あなたが書いたクエリは正しくありません。あなたはそれを次のように書く必要があります:

$result = mysql_query("UPDATE `city` SET `name`='" . $city . "' WHERE accode='" . $accode . "') or die(mysql_error());
于 2013-01-18T06:59:33.843 に答える
1
        $city = mysql_real_escape_string($_POST['city']);
        if(!empty($city)) {
            try {
                $result = mysql_query("UPDATE `city` SET `name`= '$city' WHERE accode='$accode'");
            } catch (Exception $e) {
                var_dump($e->getMessage()); // see what's the error.
            }

            if ($result) {
                echo $result;
            } else {
                echo $result;
            }
        }
于 2013-01-18T08:00:12.770 に答える
0

cityproc.phpにPHPコードを記述します

および別のファイルのhtmlコードはcityproc.htmlと言います

次に、エラーを確認して伝えます

于 2013-01-18T07:04:41.193 に答える
0

これを試してください.... $link = mysql_connect("localhost", "root", '')or die(mysql_error()); mysql_select_db("webapp",$link) または die(mysql_error());

または

mysql_query("UPDATE citySET name='$city' WHERE acode='$accode'", $link)

更新クエリをエコーし​​、phpmyadmin で手動で実行します。

于 2013-01-18T06:43:07.243 に答える