简体   繁体   English

表不会更新,但是显示成功

[英]Table will not update, however showing successful

I am new to MYSQL 我是MYSQL的新手

When i try to update a database, the result is showing successful, but the item is not showing. 当我尝试更新数据库时,结果显示成功,但未显示项目。 Please can someone help. 请有人帮忙。 I have tried carrying it over, by turning the post into a session variable, but made no difference. 我已尝试通过将帖子转换为会话变量来延续它,但没有任何区别。

update_ac.php update_ac.php

                $name = $_POST['name'];
            $lastname = $_POST['review'];

            // Connect to server and select database.
            mysql_connect("$host", "$username", "$password")or die("cannot connect");
            mysql_select_db("$db_name")or die("cannot select DB");

            // update data in mysql database
            $sql="UPDATE reviews SET name='$name', review='$lastname' WHERE id='$id'";
            $result=mysql_query($sql);

            // if successfully updated.
            if($result){
            echo "Successful";
            echo "<BR>";
            echo "<a href='list_reviews.php'>View result</a>";
            }

            else {
            echo "ERROR";
            echo "Welcome ". $_POST['name']. "<br />";
            echo $lastname; 
            }

            ?> 

update.php update.php

                // Connect to server and select database.
            mysql_connect("$host", "$username", "$password")or die("cannot connect");
            mysql_select_db("$db_name")or die("cannot select DB");

            // get value of id that sent from address bar
            $id=$_GET['id'];

            // Retrieve data from database
            $sql="SELECT * FROM $tbl_name WHERE id='$id'";
            $result=mysql_query($sql);

            $rows=mysql_fetch_array($result);
        ?>

        <?php include "includes/header.php"; ?>
                <div id="bodywrap">
                    <div id="leftcol">
                    <h1>Update the form</h1>

        <form name="form1" method="post" action="update_ac.php">
        <label>Name</label>
        <input name="name" type="text" id="name" value="<? echo $rows['name']; ?>">
        <br />
        <label>Review</label>
        <input name="lastname" type="text" id="lastname" value="<? echo $rows['review']; ?>" size="15">
        <br />
        <input name="id" type="hidden" id="id" value="<? echo $rows['id']; ?>">
        <br />
        <input type="submit" name="Submit" value="Submit">
        </form>

        <?php
        // close connection
        mysql_close();
        ?>
$name = $_POST['name'];
$lastname = $_POST['review'];

Did you notice you used $id and not $_POST['id'] or $_REQUEST['id'] or $_GET['id']? 您是否注意到您使用了$ id而不是$ _POST ['id']或$ _REQUEST ['id']或$ _GET ['id']? Missing this: 缺少此:

$id = $_POST['id'];

The SQL worked because it DID update on every id='' it found, so it was not an error. SQL之所以起作用是因为它对找到的每个id =“''进行DID更新,因此这不是错误。

Also, as others pointed out, use mysqli, mysql extension is dangerous and probably will be deprecated soon 另外,正如其他人指出,使用mysqli,mysql扩展很危险,可能很快就会被弃用。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM