gebruiker controleren in database

  • Hallo iedereen, dit is mijn eerste keer dat ik hier iets op post dus ik hoop dat ik het juist doe :)


    Ik zit namelijk met het volgende probleem ik zou willen controleren of dat een naam al voorkomt in mijn database maar ik krijg dan deze:
    error Notice: Object of class mysqli_result could not be converted to int in C:\xampp\htdocs\restaurant\aanmelden.php on line 12

    Weten jullie misschien wat ik moet aanpassen?
    Dit is mijn code:

  • Guest, wil je besparen op je domeinnamen? (ad)
  • Plaats eens een "1" na "if(mysqli_query($con,$check)>=)"


    Dan krijg je "if(mysqli_query($con,$check) >= 1)"


    Want nu check je of het resultaat groter of gelijk is, maar groter of gelijk aan wat? Doormiddel van die 1 jijkt hij of die naam al bestaat.

  • Ik krijg nog steeds de zelfde fout nu.
    Ik krijg deze fout wel alleen als de gebruiker al bestaat.



    Notice: Object of class mysqli_result could not be converted to int in C:\xampp\htdocs\restaurant\aanmelden.php on line 12



  • Precies zoals in de error omschreven staat, je probeert een uitkomst van een query te gebruiken als een integer, terwijl er een array (vermoed ik, in PDO komt er een array uit) uitkomt. Wat je wilt doen is het volgende.


    PHP
    $check= "SELECT * FROM registreren WHERE voornaam = '$naam'";
     $result_query = mysqli_query($con, $check);
    if(mysqli_num_rows($result_query) >=1 ){}

    Op deze manier tel je het aantal rows die geselecteerd zijn bij elkaar op, en krijg je een integer eruit, zodat kun je het vergelijken met een integer.


    Voor meer informatie zie https://www.w3schools.com/php/func_mysqli_num_rows.asp.

    PHP, JAVA, C#, JAVASCRIPT, HTML(5), CSS(3) developer.
    Vragen?! Stuur me gerust een prive bericht :) !

  • Thanks nu werkt het wel!


    Ik vond het ook al wel raar dat hij iets wou gebruiken als integer terwijl het puur om woorden gaat.
    Merci voor de hulp want ik ben hier nog niet echt zo goed in :)

  • Wat @Ferhat.Remory zegt.


    En dit is misschien ook een goed moment om de documentatie-site van PHP te "leren lezen".


    Kijk bijvoorbeeld eens naar wat mysqli_query retourneert:

    Returns FALSE on failure. For successful SELECT, SHOW, DESCRIBE or EXPLAIN queries mysqli_query() will return a mysqli_result object. For other successful queries mysqli_query() will return TRUE.

    Oftewel, mysqli_query retourneert ofwel een object van de klasse mysqli_result, ofwel een boolean (true of false).


    Gaan we terug naar je foutmelding:

    Citaat

    error Notice: Object of class mysqli_result could not be converted to int in C:\xampp\htdocs\restaurant\aanmelden.php on line 12

    Omdat het een SELECT-query betrof kon hier false uitrollen indien de query was mislukt (meestal doordat deze syntax-fouten bevat), of een object van de klasse mysqli_result. Mooi, de query ging dus in ieder geval niet fout. Maar vervolgens wil je een object behandelen als een getal en het lukt PHP (terecht) niet om zelf de omzetting te doen om de vergelijking te kunnen maken.


    Oftewel: de foutmelding geeft precies aan wat er mis is, en op welke regel het fout ging. Bij dit probleem was het probleem dus niet het probleem maar het interpreteren van (wat) de foutmelding (betekent). Meestal leren mensen pas programmeren wanneer ze hun eigen code moeten gaan debuggen :P .

Participate now!

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