2017-10-07 2 views
-3

Maintenant mon code vérifie si le nom d'utilisateur et les variables d'email existent dans la base de données parce que ce sont deux clés uniques, mais comment puis-je vérifier chacune individuellement et produire des réponses différentes?Comment vérifier séparément si le nom d'utilisateur PHP ou email existe dans la base de données

Comme si le nom d'utilisateur existe -> "Ce nom d'utilisateur existe déjà." Ou si l'email existe, mais le nom d'utilisateur ne -> "Cet email existe déjà."

<?php 
    include 'include/connection.php'; 

    $username = mysqli_real_escape_string($conn, $_REQUEST['username']); 
    $password = mysqli_real_escape_string($conn, $_REQUEST['password']); 
    $name = mysqli_real_escape_string($conn, $_REQUEST['name']); 
    $email = mysqli_real_escape_string($conn, $_REQUEST['email']); 

    $sql = "INSERT INTO userdata (username, password, name, email) VALUES ('$username', '$password', '$name', '$email')"; 

    if (mysqli_query($conn, $sql)) { 
    echo "Your account was created successfully, please login to continue."; 
    echo '<form action="login.php"> 
      <input type="submit" name="login" id="login" value="Login" /> 
      </form>'; 
    } else { 
    echo "That username already exists, please try again."; 
    echo '<form action="registration.php"> 
      <input type="submit" name="register" id="register" value="Register" /> 
      </form>'; 
    } 
?> 
+1

Voici l'explication complète, cliquez ici https://stackoverflow.com/questions/33129791/check-if-already-a-user-then-insert-into-the-database-php –

+0

@Kheteshkumawat Je devrait vérifier pour voir si le nom d'utilisateur ou l'email existe avant que je tente de l'insérer dans la base de données? – ChaCol

+0

J'ai commenté le lien à l'explication complète cette réponse d'abord vous sélectionnez l'exécution de la requête que de vérifier les entrées en double et le nom d'utilisateur. –

Répondre

1

L'un des moyens possibles d'avoir une fonction et écrire SQL pour vérifier email et username les deux.

SELECT username, email from userdata where username = ? OR email = ? 

Et, boucle à travers le ResultSet et vérifier si email ou username existe et retourner un message d'erreur en conséquence.

0

Essayez cette

$checkUserNameSql = "Select Count(username) as username from userdata WHERE username = '".$username."'"; 

$result=mysql_query($checkUserNameSql); 
$data=mysql_fetch_assoc($result); 

echo $data['username']; 

Si vous obtenez un compte, vous pouvez appliquer votre chèque à ce sujet.

+0

'$ result_username = mysqli_query ($ conn, "SELECT nom d'utilisateur userdata OU nom d'utilisateur = $ username");' '$ username_count = mysqli_num_rows (result_username de $);' '} else if (username_count de $ == 1) {'J'ai essayé quelque chose comme ça mais il est dit" mysqli_num_rows() attend que le paramètre 1 soit mysqli_result " – ChaCol

+0

Votre requête SELECT est usée. '" SELECT nom d'utilisateur FROM userdate WHERE nom d'utilisateur = '. $ Nom d'utilisateur.' "' –

+0

J'ai corrigé cela, mais maintenant, il ignore complètement mon instruction else if. Si le nom d'utilisateur existe, il passe à mon instruction else au lieu d'aller à mon '} else if ($ count_username == 1) {' – ChaCol

-1

Utilisé sous le code. vous devez d'abord vérifier le nom d'utilisateur et le courrier électronique, puis insérer l'enregistrement.

include 'include/connection.php'; 
$username = mysqli_real_escape_string($conn, $_REQUEST['username']); 
    $password = mysqli_real_escape_string($conn, $_REQUEST['password']); 
    $name = mysqli_real_escape_string($conn, $_REQUEST['name']); 
    $email = mysqli_real_escape_string($conn, $_REQUEST['email']); 

    $checkUser = 'select email ,username from userdata where email="'.$email.'" or username = "'.$username.'"'; 
    $result  = mysqli_query($conn,$checkUser); 
    $row   = mysqli_fetch_assoc($result); 
    if(!empty($row)){ 
    if($row['email']==$email){ 
     echo "That email already exists. Please try again"; 
    } 
    else if($row['username']==$username){ 
     echo "That username already exists. Please try again"; 
    } 

    echo '<form action="registration.php"> 
     <input type="submit" name="register" id="register" value="Register" /> 
     </form>'; 
    } 
    else{ 

    $sql = "INSERT INTO userdata (username, password, name, email) VALUES ('$username', '$password', '$name', '$email')"; 
    if (mysqli_query($conn, $sql)) { 
    echo "Your account was created successfully, please login to continue."; 
    echo '<form action="login.php"> 
      <input type="submit" name="login" id="login" value="Login" /> 
      </form>'; 
    } 
    } 
+0

bas électeur expliquer gentiment ce qui ne va pas dans ce code ??? – sheraz