1

这就是我想找出用户是否存在于数据库中的方式,但是当它不这样做时,它会不断地保持自己的存在。

我想从这段代码中获得关于数据库中用户的知识,如果它没有做到必须清楚地说出来:)

}
    else
        {
            $email_1 = $_post["email"];
            $result = $this->mysqli->query("SELECT * FROM bruger WHERE email='$email_1'");
            if(mysqli_num_rows($resut) > 0)
            {
//code here!
}
        else
        {
        ?>
        <div class="article-main-content">
            <div class="alert-message" style="background-color:#c22525;"><span class="icon-text">&#9888;</span><span class="alert-content">Email Findes på hjemmesiden</span><a href="#" class="destroy-button"></a></div>
        </div>
        <?php
        }
    }
}

我在这里尝试过:

$email = $_post["email"]
    foreach($this->mysqli->query("SELECT * FROM `bruger` WHERE email='$email'") as $row) {
              if ($row['email'] !== $email) {

这是我所有的html代码:

<form action="#" enctype="multipart/form-data" method="post">
    <table width="100%" cellpadding="5" cellspacing="5">
        <tr>
            <td><p>Email</p></td>
            <td><input type="text" name="email" class="ned_input"></td>
        </tr>
        <tr>
            <td><p>Adgangskode</p></td>
            <td><input type="password" name="password_adgangskode_1" class="ned_input"></td>
        </tr>
        <tr>
            <td><p>Adgangskode Gentag</p></td>
            <td><input type="password" name="password_adgangskode_2" class="ned_input"></td>
        </tr>
        <tr>
            <td><p>Fornavn</p></td>
            <td><input type="text" name="fornavn" class="ned_input"></td>
        </tr>
        <tr>
            <td><p>Efternavn</p></td>
            <td><input type="text" name="efternavn" class="ned_input"></td>
        </tr>
        <tr>
            <td><p>Profilbillede</p></td>
            <td><input type="file" name="file" /></td>
        </tr>
        <tr>
            <td></td>
            <td><input type="submit" name="opret" value="Opret bruger" style="margin-top:10px;"></td>
        </tr>
    </table>
</form>

EIDT 这里

if ($stmt = $this->mysqli->prepare("SELECT `id` FROM `bruger` WHERE `email`"))
             {
             $stmt->bind_param('s', $email_indhold);
             $email_indhold = $_POST["email"];


             $stmt->execute();
             $stmt->store_result();
             $stmt->bind_result($id);
             $stmt->fetch();
             $count = $stmt->num_rows;
             $stmt->close();

             if($count > 0)
             {
4

2 回答 2

0

看看这个算法

PHP端

  1. 首先收集POST数据并清理输入。
  2. 检查电子邮件

    SELECT emailFROM table WHERE email= '$post_email' LIMIT 1

  3. 如果结果不为空,则继续

  4. 否则给出重复输入的警报

数据库端

在您的数据库上添加 UNIQUE KEY 约束

ALTER TABLE  <table name >
ADD CONSTRAINT uniqueEmail UNIQUE (< `email column` > )

使用唯一约束将保护您的表,当有人尝试输入重复时会出错。因此email,当您对表执行INSERT查询时,请检查**mysqli_query** 返回的内容(见下文)

$qry = "SELECT INTO table (whatever) VALUE (whatever)";
$done = mysqli_query($qry);

检查$done,如果一切正常,那么它会返回TRUE,否则会给出 mysql_error(可能是 1064),所以通过这种方式,您还可以防止停止重复的电子邮件地址

于 2013-05-31T06:06:15.253 回答
0

如果您尝试检查电子邮件 ID 是否存在,此代码就足够了。

        $email_1 = $_post["email"];
        $result = mysql_query("SELECT * FROM bruger WHERE email='$email_1' LIMIT 1");
        if(mysql_num_rows($resut) > 0)
        {
            //code here!
            //$result contain other column values
        }
        else
        {

            //Email id not exist
        }
于 2013-05-31T06:09:48.800 回答