• Inloggen
  • Registreer
  • Zoeken
Dit topic
  • Overal
  • Dit topic
  • Dit forum
  • Artikelen
  • Pagina's
  • Forum
  • Downloads
  • Meer opties

ICTscripters

Dé plek voor IT

Dé plek voor IT

Aanmelden

Geavanceerde opties
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
    3. Onopgeloste topics
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
    3. Onopgeloste topics
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
    3. Onopgeloste topics
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  1. Dé plek voor IT - ICTscripters
  2. Forum
  3. Scripting & programmeren
  4. PHP + SQL

Forum

  • Externe testers gezocht — Saphaxis AI Chat Organizer 0.1.59

    FreelanceAP 4 november 2026 om 07:42
  • nieuwe game

    tigermaffia 2 november 2026 om 15:21
  • Criminolz

    qevanto 31 oktober 2026 om 20:52
  • [Beta] Ottomaan: gratis browserspel met een echte, levende stad. Feedback gezocht!

    frio 27 oktober 2026 om 12:22
  • Port Father: beta van een browsergame in Antwerpen 1931, feedback welkom

    Jeroen.G 26 oktober 2026 om 10:33
  • Maffia Hotel: een browsergame waarin je van lobbygast naar spil van het hotel groeit

    eeyk 22 oktober 2026 om 18:43
  • Crime Club volledig herschreven vanaf nul

    frio 19 oktober 2026 om 23:57
  • Malavita (nieuwe maffia game, van 0)

    jos 19 oktober 2026 om 23:18

Marktplaats

  • SEO Expired Domains for Sale | .COM, .ORG, .NET & Australian Domains | From $30

    LeoDropHunter 5 november 2026 om 16:56
  • 293 Nieuwe Domeinnamen Oktober 2026

    shiga 5 november 2026 om 11:02
  • [Aanbod] Stadskaart voor je browsergame: van menu naar klikbare stad, vanaf €200

    frio 29 oktober 2026 om 18:17

Controleren of value al bestaat in database

  • matistop333
  • 29 november 2013 om 23:40
  • matistop333
    Gevorderd
    Berichten
    268
    • 29 november 2013 om 23:40
    • #1

    Hallo,
    ik ben een beginnertje in php en probeer een registratie-systeempje te maken.
    Nu wil ik dat het controleert of je email of naam ( gebruikersnaam ) al in de database staat aan de hand van if/else.
    Maar dit lukt niet echt, kan iemand mij helpen?
    Dit is mijn code:

    PHP
    <?php
    session_start();
    $con=mysqli_connect("localhost","root","","oefenen");
    $naam = $_POST["naam"];
    $email = $_POST["email"];
    // Check connection
    if (mysqli_connect_errno())
      {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
      }
      $result = mysqli_query($con,"SELECT $naam FROM gebruikers");
        $result2 = mysqli_query($con,"SELECT $email FROM gebruikers");
    if ($email = $result2 || $naam = $result)
    { echo "Email of gebruikersnaam bestaat al!"; }
    else {
    mysqli_query($con,"INSERT INTO Gebruikers (gebruikersnaam, wachtwoord, email, leeftijd)
    VALUES
    ('$naam','$_POST[wachtwoord]','$email','$_POST[leeftijd]')");
    
    
    }
    
    
    mysqli_close($con);
    Meer tonen
  • Gast, wil je besparen op je domeinnamen? (ad)
  • Tim
    Expert
    Berichten
    3.684
    • 29 november 2013 om 23:43
    • #2

    Hallo,

    Via de Google search term "php check if username exists mysql" kwam ik op de volgende resultaten:
    http://stackoverflow.com/questions/1780…l-table-via-php
    http://stackoverflow.com/questions/1746…-mysql-with-php
    http://stackoverflow.com/questions/6451…ating-a-new-use
    http://stackoverflow.com/questions/1932…-mysql-database

    En zo nog velen meer.

    Die voorbeelden laten zien hoe het moet.

    Mvg,
    Tim

    Master student IT-recht en Master student Ondernemingsrecht & software ingenieur
    My Personal profile
    My professional profile (LinkedIn/CV)

  • matistop333
    Gevorderd
    Berichten
    268
    • 29 november 2013 om 23:52
    • #3

    Bedankt voor de vele voorbeelden.
    Ik heb ze proberen toe te passen op mijn code maar dit is niet erg goed gelukt en ik weet niet wat ik fout heb gedaan.
    Ik krijg nu volgende error:
    Notice: Object of class mysqli_result could not be converted to int in C:\xampp\htdocs\welcome.php on line 20
    User Already in Exists
    (user already exists tekst komt er ook wanneer email nog niet bestaat)
    dit is mijn code:

    PHP
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Welcome</title>
    </head>
    <body>
    
    
    <?php
    session_start();
    $con=mysqli_connect("localhost","root","","oefenen");
    $naam = $_POST["naam"];
    $email = $_POST["email"];
    // Check connection
    if (mysqli_connect_errno())
      {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
      }
     $check="SELECT COUNT(*) FROM Gebruikers WHERE email = '$email'";
    if(mysqli_query($con,$check)>=1)
    {
        echo "User Already in Exists<br/>";
    }
    
    
    else {
    mysqli_query($con,"INSERT INTO Gebruikers (gebruikersnaam, wachtwoord, email, leeftijd)
    VALUES
    ('$naam','$_POST[wachtwoord]','$email','$_POST[leeftijd]')");
    
    
    }
    
    
    mysqli_close($con);
    
    
    ?>
    
    
    
    
    </body>
    </html>
    Meer tonen
  • M.Beers
    Elite members
    Berichten
    460
    • 30 november 2013 om 01:22
    • #4

    Kleine aanpassing waardoor het zou moeten werken...

    PHP
    <?php
    $query = "SELECT * FROM Gebruikers WHERE email = `example` LIMIT 1";
    $result = mysqli_query($con, $query);
    
    
    if (mysqli_num_rows($result) > 0) {
    echo "Gebruiker bestaat";
    }
    ?>

    Dit was mijn spreekbeurt, zijn er nog vragen?

  • matistop333
    Gevorderd
    Berichten
    268
    • 30 november 2013 om 10:21
    • #5

    Hallo, bedankt voor de hulp. Ik heb mijn code aangepast aan de jouwe en krijg nu volgende error: Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in C:\xampp\htdocs\welcome.php on line 21

    Dit is mijn code:

    PHP
    $check="SELECT * FROM Gebruikers WHERE email = $email LIMIT 1";
    $res = mysqli_query($con,$check);
    if(mysqli_num_rows($res) > 0){   //dit is lijn 21
        //User exists
    }
    
    
    else {
    mysqli_query($con,"INSERT INTO Gebruikers (gebruikersnaam, wachtwoord, email, leeftijd)
    VALUES
    ('$naam','$_POST[wachtwoord]','$email','$_POST[leeftijd]')");
    
    
    }
    Meer tonen
  • Victor
    Meester
    Berichten
    1.680
    • 30 november 2013 om 11:33
    • #6

    Mysqli_num_rows error is 9/10 keer een fout met de query. Wat ik ook altijd zeg: Bouw foutafhandeling in. Dan weet je meteen of het aan je query ligt.
    Daarnaast moet je ook je variabelen buiten de quotes halen. Dus WHERE email = '".$email."' LIMIT 1 ;)

    Met vriendelijke groet,

    Victor
    Beheerder ICTscripters

  • matistop333
    Gevorderd
    Berichten
    268
    • 30 november 2013 om 11:46
    • #7

    Ik heb de '".$email." aangepast zoals je zei en nu geeft het geen error meer. Nu heb ik het probleem dat het altijd else gebruikt (dus je gegevens in database zet) ookal bestaat de gebruikersnaam al.
    Mijn code:

    PHP
    $check="SELECT * FROM Gebruikers WHERE email = '".$email."' LIMIT 1";
    $res = mysqli_query($con,$check);
    if(mysqli_num_rows($res) > 0){
        //User exists
    }
    
    
    else {
    mysqli_query($con,"INSERT INTO Gebruikers (gebruikersnaam, wachtwoord, email, leeftijd)
    VALUES
    ('$naam','$_POST[wachtwoord]','$email','$_POST[leeftijd]')");
    
    
    }
    Meer tonen
  • Victor
    Meester
    Berichten
    1.680
    • 30 november 2013 om 11:55
    • #8

    Dan mag je nu nog een keer mijn vorige bericht lezen... ;)

    Met vriendelijke groet,

    Victor
    Beheerder ICTscripters

  • WHMCSAddons
    Meester
    Berichten
    2.411
    • 30 november 2013 om 15:14
    • #9
    Citaat van victor

    Mysqli_num_rows error is 9/10 keer een fout met de query. Wat ik ook altijd zeg: Bouw foutafhandeling in. Dan weet je meteen of het aan je query ligt.
    Daarnaast moet je ook je variabelen buiten de quotes halen. Dus WHERE email = '".$email."' LIMIT 1 ;)

    Wanneer je zoekt op een specifiek e-mail adres filtert hij hem neem ik aan toch al, neem aan dat een e-mail adres maar 1x mag voorkomen, waarom zou je dan als nog een LIMIT 1 geven ?
    Als ik me query uitvoer zie ik eigenlijk geen snelheid verschil in LIMIT 1 en zonder LIMIT 1, reageert vrijwel hetzelfde..

    P.s. puur uit nieuwsgierigheid nooit echt mee bezig gehouden.

    Bewerkt één keer, laatst door WHMCSAddons (30 november 2013 om 15:19).

  • M.Beers
    Elite members
    Berichten
    460
    • 30 november 2013 om 16:38
    • #10

    @Wmdiensten ik weet het ook niet, maar het lijkt me logisch dat een LIMIT sneller is omdat ij dan NIET verder hoeft te zoeken zodra er een resultaat is... Zou je eigenlijk pas kunnen testen bij 30.000 records ofzo

    Dit was mijn spreekbeurt, zijn er nog vragen?

  • WHMCSAddons
    Meester
    Berichten
    2.411
    • 30 november 2013 om 18:54
    • #11
    Citaat van M.Beers

    @Wmdiensten ik weet het ook niet, maar het lijkt me logisch dat een LIMIT sneller is omdat ij dan NIET verder hoeft te zoeken zodra er een resultaat is... Zou je eigenlijk pas kunnen testen bij 30.000 records ofzo

    Je filtert toch al op het record (aangezien die uniek is), dus een limit geven heeft eigenlijk (in mijn ogen) vrij weinig zin als je op één specifieke record zoekt lijkt me?

  • Victor
    Meester
    Berichten
    1.680
    • 30 november 2013 om 19:03
    • #12

    In deze situatie heeft het volgens mij ook weinig zin aangezien het om een uniek record gaat. Er mag maar één e-mail in de database staan. Je kan de query wel sneller maken door geen wildcards (*) te gebruiken, maar alleen de waardes op te halen die je nodig hebt.

    Met vriendelijke groet,

    Victor
    Beheerder ICTscripters

  • matistop333
    Gevorderd
    Berichten
    268
    • 30 november 2013 om 20:50
    • #13

    @Viktor wat bedoelt u met uw vorige bericht.

    Weet iemand een oplossing zodat men scriptje werkt?

  • Victor
    Meester
    Berichten
    1.680
    • 30 november 2013 om 22:02
    • #14

    Je leest m'n bericht blijkbaar niet. Ik zei dat je foutafhandeling in moest bouwen. Op die manier weet je meteen of de query fout loopt en wat de foutmelding precies is.

    * Noot: or_die() is geen goede foutafhandeling! Ik heb een blog geschreven over foutafhandeling. ;) (Zie mijn profiel)

    Met vriendelijke groet,

    Victor
    Beheerder ICTscripters

  • matistop333
    Gevorderd
    Berichten
    268
    • 30 november 2013 om 22:18
    • #15

    Ik heb een poging gedaan om je foutafhandeling proberen in te bouwen maar aangezien ik een noob ben in php momenteel is het niet echt goed gelukt.
    Dit krijg ik momenteel: "Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\xampp\htdocs\welcome.php on line 22
    Er ging iets mis op deze pagina. De error is bekend en wordt zo snel mogelijk opgelost. Excuses voor het ongemak!
    Notice: Undefined variable: query in C:\xampp\htdocs\welcome.php on line 35"


    Dit is de code:

    PHP
    if (mysqli_connect_errno())
      {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
      }
      else { }
     $check="SELECT * FROM Gebruikers WHERE email = '$email' ";
    $res = mysqli_query($con,$check);
    if(!mysqli_query($res))
    {
    
    
    //Query is mislukt. Afhandelen
    
    
        //De gebruiker een nette response geven
        echo 'Er ging iets mis op deze pagina. De error is bekend en wordt zo snel mogelijk opgelost. Excuses voor het ongemak!';
        
        //Bestandsnaam
        $bestand = "errors/log_index.txt";
        //Bestand openen. Als het bestand nog niet bestaat wordt het aangemaakt.
        $log_openen = fopen($bestand, 'a');
        //De error
        $error = date("d-m-Y G:i").' - '.mysql_error().' in query: '.$query;
        //De error naar het bestand schrijven
        fwrite($log_openen, $error);
        //Het bestand sluiten
        fclose($log_openen);
        
    }
    
    
    else
    
    
    {
    
    
    //Query is gelukt
    //Rest van het script
        if(mysqli_num_rows($res) > 0){
        //User exists
    }
    
    
    else {
    mysqli_query($con,"INSERT INTO Gebruikers (gebruikersnaam, wachtwoord, email, leeftijd)
    VALUES
    ('$naam','$_POST[wachtwoord]','$email','$_POST[leeftijd]')");
    
    
    } 
        echo 'Alles ging goed!';
        
    }
    
    
    
    
    mysqli_close($con);
    Meer tonen
  • Victor
    Meester
    Berichten
    1.680
    • 30 november 2013 om 22:42
    • #16

    Zo zou ik een dergelijke fout oplossen:

    - Ik ga de code na zonder deze uit te voeren.
    * Je kijkt of er verbinding kan worden gemaakt (eerste paar regels), maar doet daarna niets met de uitkomst. Je laat de { } leeg.
    - Maak je aanpassingen
    * Zet dus alles binnen die haakjes wat moet gebeuren als er wel verbinding is.
    - Probeer je code uit
    * Je ziet dus een error: 2 parameters expected, 1 given
    - Lees de error en kijk wat het betekent


    De blog die ik heb geschreven was voor MySQL. De mysqli_query variant vraagt om 2 variabelen. Namelijk de verbindings variabele en de sql variabele. Gaat het zo lukken?
    Het is overigens niet de bedoeling dat je letterlijk dingen over gaat nemen. Ik heb mijn blog geschreven zodat je zelf gaat nadenken hoe iets werkt. Php is 9/10 keer gewoon goed nadenken en lezen wat er staat.

    Met vriendelijke groet,

    Victor
    Beheerder ICTscripters

  • thjeu
    Developer
    Berichten
    500
    • 2 december 2013 om 11:31
    • #17

    Ik heb niet het hele topic doorgelezen, dus misschien zeg ik iets wat al gezegd is. Maar dit is de meest gebruikelijke oplossing.

    Om te kijken of een waarde al bestaat in de database, kun je dit met een count doen. Je telt namelijk of er al een column bestaat in de database met deze waarde. Is deze waarde 1, dan bestaat hij al.

    Een voorbeeld voor de code:

    PHP
    $user_sql = "SELECT COUNT(`id`) FROM `Gebruikers` WHERE `username`= '$username'";
    
    
    	$user_sql->execute();
    	$rows = $user_sql->fetchColumn();
    
    
    			if($rows == 1){
    				echo 'deze gebruikersnaam bestaat al';
    			}
    else{
    				echo 'verdere afhandeling';
    			}
    Meer tonen

    Let op: dit is een voorbeeld van hoe het kan werken. Dus dit zul je in je code moeten verwerken en niet zo maar kopiëren

    TwistedMonkey - Media Productions

Registratie

Nog geen account? Registreer je nu en word deel van onze community!

Nu registreren Aanmelden

ICT Nieuws

  • PHP waarschuwt voor twee ernstige bugs die makkelijk uit te buiten lijken

    Aaron 22 oktober 2026 om 22:19

Blogs

  • Functioneel ontwerp

    Dees 28 december 2014 om 12:38
  • Access Control List implementatie in PHP/MySQL - deel 1/2

    FangorN 28 december 2018 om 12:35
  • Access Control List implementatie in PHP/MySQL - deel 2/2

    FangorN 29 december 2018 om 12:37

Gebruikers die dit topic bekijken

  • 2 Gasten
  1. Marktplaats
  2. Design
  3. Voorwaarden
  4. Ons team
  5. Leden
  6. Geschiedenis
  7. Regels
  8. Links
  9. Privacyverklaring
  10. Contact
ICTscripters ©2005 - 2026 , goedkope hosting door DiMoWeb.com, BE0558.915.582
Sponsors: Beste kattenhotel provincie Antwerpen
Style: Nexus by cls-design
Stylename
Nexus
Manufacturer
cls-design
Licence
Commercial styles
Help
Supportforum
Visit cls-design