PHP配置文件更新页面MySql错误

时间:2014-02-18 13:24:02

标签: php html mysql

任何人都可以在此代码中看到错误,因为代码只会让我回复:

  

名称不存在

现在一切正常,但事实并非如此。

如果有人能发现它,请纠正我,因为我还是新手。

<?php
    // see if the form has been completed
    include_once("php_includes/check_login_status.php");
    include_once("php_includes/db_conx.php");
    // Initialize any variables that the page might echo
    $username = "";
    $firstname = "";
    $surname = "";
    $gender = "Male";
    $country = "";
    $weight = "";
    $height = "";

    if(isset($_GET["u"])){
        $username = preg_replace('#[^a-z0-9]#i', '', $_GET['u']);
    } 

    $sql = "SELECT * FROM users WHERE username='$username' AND activated='1' LIMIT 1";
    $user_query = mysqli_query($db_conx, $sql);

    // check if the user exists in the database
    while ($row = mysqli_fetch_array($user_query, MYSQLI_ASSOC)) {
        $username = $row ["username"];
        $firstname = $row["firstname"];
        $surname = $row["surname"];
        $weight = $row["weight"];
        $height = $row["height"];
        $email = $row["email"];
        $gender = $row ["gender"];
        }
    if (isset($_POST['submit'])){
        $username = $_POST['username'];
        $firstname = $_POST['firstname'];
        $surname = $_POST['surname'];
        $weight = $_POST['weight'];
        $height = $_POST['height'];
        $email = $_POST['email'];
        $gender = $_POST['gender'];

        mysql_connect ("host","****","*****"); mysql_select_db('db_k1003140');
        // check if that user exist 
        $exists = mysql_query ("SELECT * FROM users WHERE firstname='" . $username . "'") or die ("query cant connect");    
        if (mysql_num_rows ($exists) != 0) {
        // update the description in the database       
            mysql_query("UPDATE users SET firstname='$firstname', surname='$surname', weight='$weight', height='$height' WHERE username='$username'") or die ("update could not be applied");
            echo "successful";
        } else echo "the name does not exist";  
     }
?>  

这是HTML:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Profile Update: <?php echo $u; ?></title>
    <link rel="icon" href="favicon.ico" type="image/x-icon">
    <link rel="stylesheet" type="text/css" href="style.css">
    <script src="js/main.js"></script>
    <script src="js/javascript.js"></script>
    <script src="js/ajax.js"></script>
    <style type="text/css">
        #updateform{
        margin-top:24px;    
        }
        #updateform > div {
            margin-top: 12px;   
        }
        #updateform > input {
            width: 200px;
            padding: 3px;
            background: #F3F9DD;
        }       
</style>

</head>
<body>
    <?php include_once("template_pageTop.php"); ?>
    <div id="pageMiddle">       
    <div id="usernamecss"> Username: <?php echo $username; ?></div>
    <form action="update.php" method="POST" id="updateform">
    <div>

    <div>First Name: </div>
    <input id="firstname" type="text" name="firstname" value="<?php echo $firstname?>" maxlength="16">
    <div>Surname: </div>
    <input id="surname" type="text" name="surname" value="<?php echo $surname?>" maxlength="16">
    <div>Weight: </div>
    <input id="weight" type="text" name="weight" value="<?php echo $weight?>" >
    <div>Height: </div>
    <input id="height" type="text" name="height" value="<?php echo $height?>" >


    <p> <input type="submit" name="submit" id="submit" value="Update Description"></p>

    <a href="user.php<?php echo "?u=",$username;?>">Go to Profile</a>
    </div>
    </form>
    </div>
    <?php include_once("template_pageBottom.php"); ?>
    </body>
</html>

1 个答案:

答案 0 :(得分:3)

只是猜测你将username字段与firstname进行比较,

SELECT * FROM users WHERE firstname='" . $username . "'";

虽然需要,但

SELECT * FROM users WHERE username='" . $username . "'";

注意: Please, don't use mysql_* functions in new code。它们不再被维护and are officially deprecated。请参阅red box?转而了解prepared statements,并使用PDOMySQLi - this article将帮助您确定哪个。如果您选择PDO here is a good tutorial