• Login
  • Register
  • Zoek
This Thread
  • Everywhere
  • This Thread
  • This Forum
  • Articles
  • Pages
  • Forum
  • Filebase Entry
  • More Options

ICTscripters

Dé plek voor IT

Dé plek voor IT

Login

Geavanceerde opties
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  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
  9. Goedkope domeinnamen
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  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
  9. Goedkope domeinnamen
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  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
  9. Goedkope domeinnamen
  1. Dé plek voor IT - ICTscripters
  2. Forum
  3. Scripting & programmeren
  4. PHP + SQL

Forum

  • Beta-testers gezocht voor Crypto-oefenplatform

    Syntax 29 januari 2026 om 16:11
  • Na 15 jaar terug van weggeweest: iCriminals.nl is terug (BETA)!

    Syntax 19 januari 2026 om 09:34
  • Developer Gezocht

    Mikevdk 10 januari 2026 om 18:57
  • Op zoek naar de legends

    Syntax 5 januari 2026 om 13:50
  • [FREE] WeFact Hosting module

    Jeroen.G 13 oktober 2025 om 14:09
  • Help testers nodig voor android app Urgent

    urgentotservices 26 september 2025 om 10:21
  • Versio vervanger

    Jeroen.G 25 augustus 2025 om 15:56
  • Afspraken systeem met planbeperking

    Lijno 1 augustus 2025 om 23:04

Marktplaats

  • 350 Nieuwe Domeinnamen Januari 2026

    shiga 1 februari 2026 om 14:21
  • 321 Nieuwe Domeinnamen December 2025

    shiga 1 januari 2026 om 10:26
  • Meerdere mafia game template te koop

    Syntax 26 december 2025 om 00:07

Controleren of value al bestaat in database

  • matistop333
  • 29 november 2013 om 23:40
  • matistop333
    Intermediate
    Ontvangen Reacties
    13
    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);
    Toon Meer
  • Guest, wil je besparen op je domeinnamen? (ad)
  • Tim
    Enlightened
    Ontvangen Reacties
    77
    Berichten
    3.686
    • 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
    Intermediate
    Ontvangen Reacties
    13
    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>
    Toon Meer
  • M.Beers
    Elite members
    Ontvangen Reacties
    31
    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
    Intermediate
    Ontvangen Reacties
    13
    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]')");
    
    
    }
    Toon Meer
  • Victor
    Master
    Ontvangen Reacties
    102
    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
    Intermediate
    Ontvangen Reacties
    13
    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]')");
    
    
    }
    Toon Meer
  • Victor
    Master
    Ontvangen Reacties
    102
    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
    Master
    Ontvangen Reacties
    88
    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
    Ontvangen Reacties
    31
    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
    Master
    Ontvangen Reacties
    88
    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
    Master
    Ontvangen Reacties
    102
    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
    Intermediate
    Ontvangen Reacties
    13
    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
    Master
    Ontvangen Reacties
    102
    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
    Intermediate
    Ontvangen Reacties
    13
    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);
    Toon Meer
  • Victor
    Master
    Ontvangen Reacties
    102
    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
    Ontvangen Reacties
    2
    Berichten
    501
    • 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';
    			}
    Toon Meer

    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

Participate now!

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

Maak een account aan Login

ICT Nieuws

  • Fijne feestdagen

    tcbhome 28 december 2025 om 13:55
  • Kritieke update voor Really Simple Security-plug-in

    K.Rens 16 november 2024 om 16:12
  • ING Nederland streeft naar ondersteuning van Google Pay tegen eind februari

    K.Rens 2 november 2024 om 16:09

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

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