Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL多个查询不工作_Php_Mysql_Forms - Fatal编程技术网

Php MySQL多个查询不工作

Php MySQL多个查询不工作,php,mysql,forms,Php,Mysql,Forms,问题已解决 我已经创建了一个表单,用于处理管理员对用户信息的更改,例如管理员更改用户的用户名和/或电子邮件。我在处理多个查询时遇到问题 例如,如果管理员更改了用户名,则查询将正常工作。如果管理员更改了电子邮件地址,查询将正常工作。但是如果管理员通过表单同时更改用户名和电子邮件,那么只有用户名更改 有什么想法吗?我将提交我的代码,但出于安全原因等原因,我将更改变量。此外,出于安全原因,任何大写字母都已更改。对于每个单独的功能,代码都是正确的,因为正如我所说的,如果我只更改电子邮件,它就会工作,并且

问题已解决

我已经创建了一个表单,用于处理管理员对用户信息的更改,例如管理员更改用户的用户名和/或电子邮件。我在处理多个查询时遇到问题

例如,如果管理员更改了用户名,则查询将正常工作。如果管理员更改了电子邮件地址,查询将正常工作。但是如果管理员通过表单同时更改用户名和电子邮件,那么只有用户名更改

有什么想法吗?我将提交我的代码,但出于安全原因等原因,我将更改变量。此外,出于安全原因,任何大写字母都已更改。对于每个单独的功能,代码都是正确的,因为正如我所说的,如果我只更改电子邮件,它就会工作,并且实际上会更改。但是,如果我更改用户名和电子邮件,则只有用户名会更改,尽管电子邮件查询正在运行,而且电子邮件已更改

此外,值得注意的是,用户名字段和电子邮件字段等所有字段都是提交到一个页面的表单的一部分。

if (isset($_POST['SUBMIT_BUTTON_PRESSED'])) {
//Gather all inputs from the form and sanitise it.
//REMOVED FOR SECURITY REASONS.

if($USERNAME_NEW != "") {
    if($USERNAME_NEW == $CURRENT_USERNAME) {
        echo "You have entered the username you are already using. Please enter a different username.";
    } else {
    $CHECK_USERNAME = "SELECT USERNAME_ROW FROM USERS_TABLE WHERE username='$USERNAME_NEW'";
    $RUN_QUERY = mysqli_query($CONNECTION INFO, $CHECK_USERNAME);
    $RESULT = mysqli_num_rows($RUN_QUERY);
    if($RESULT > 0) {
    echo "That username already exists. You cannot use that username again. Please enter another username.";    
    } else {
    $editing_username = true;
    $USERNAME = $NEW_USERNAME; //NOT NEEDED BUT IT STILL WORKS
    $THE_SQL_QUERY = "UPDATE USER_TABLE SET username='$USERNAME' WHERE username='$ORIGINAL USERNAME'";
    $RUN_THIS_QUERY= mysqli_query($CONNECTION INFO, $THE_SQL_QUERY);
    echo "The user's username has been changed to:  ". $USERNAME;
        }
    }
}
     if($EMAIL != "") {
        if($EMAIL == $CURRENT_EMAIL) {
            echo "You have entered the same email address to the one you are already using. Please enter a different email address.";
        } else {
            $CHECK_EMAIL = "SELECT USERS_EMAIL FROM USER_TABLE WHERE username='$USER'";
            $CHECK_EMAIL_QUERY = mysqli_query($CONNECTION_INFO, $CHECK_EMAIL);
            $RESULT = mysqli_num_rows($CHECK_EMAIL_QUERY);
            if($RESULT > 0) {
            echo "That email already exists. You cannot use that username again. Please enter another username.";   
            } else {
                $editing_email = true;
                $THE_NEW_EMAIL = $FINAL_EMAIL_THING; // AGAIN NOT NEEDED BUT STILL WORKS
                $THE_SQL= "UPDATE USER_TABLE SET USER_EMAIL='$EMAIL' WHERE username='$USER' LIMIT 1"; // REMOVED THE LIMIT 1, STILL DOESN'T WORK
                $RUN_THIS_QUERY = mysqli_query($CONNECTION, $THE_SQL);
                if($RUN_THIS_QUERY) {
                echo "The user's email has been changed."; // EVEN WHEN BOTH FIELDS ARE SUBMITTED THIS WORKS SO THE QUERY IS RUNNING BUT THE EMAIL DOESN'T CHANGE
                    }
                }
            }
        }
谢谢你的帮助!此外,不要对我的问题的结构等发表不诙谐的评论,因为我不想说实话。老实说,我只是想让这段代码工作,因为我已经做了一段时间了。这可能很简单,或者我可能对这种类型的表单提交使用了错误的方法


请记住:当我分别提交每个字段时,此代码确实有效

很难理解,因为您没有生成真正的代码

我想你错过了一些东西。 当您在SQL中使用用户名作为密钥时,请确保在第二组SQL中使用更新的用户名(用于更新电子邮件),因为它们已被第一组SQL替换


而且,在向其他人显示代码片段时没有安全风险。仅隐藏用户名/密码或标识。:)

这是你真正的密码吗?我喜欢那些变量names@zerkms不。。。正如我指出的那样。出于安全原因,我更改了所有重要变量。我不想让人们知道真正的变数。尽管我的系统的表单和所有内容都是SQL注入式的,但我还是希望人们不知道变量名,我相信你也会一样。“出于安全原因,我更改了所有重要变量。我不希望人们知道真正的变量。”——:-你让我开心了,谢谢。“我相信你也会一样”——当然不是,我知道你所做的与“安全”毫无关系。@zerkms我是不是遗漏了什么?你今天过得怎么样?我喜欢隐私。如果这是你对“有趣”的一天的想法,那么你一定是度过了糟糕的一天!只要代码中有非法的变量名,xDi就不必担心这个问题。对不起,当我看到像
$SQL查询
这样的变量时,我的大脑会产生错误。多亏了您的回答,我才意识到这个问题。我存储了一个username变量,以便系统知道正在编辑哪个用户。一旦我更改了用户名,这个变量就错了,因为它是旧用户名。我一直在为所有其他语句使用旧变量,因此它试图为不存在的用户编辑电子邮件!见上面的评论。我忘了加上你的名字,因为我很兴奋地发现了这个问题。仔细阅读你的答案,我意识到你解释了这个问题。非常感谢。