gebruiker controleren in database

    • 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:

      PHP Source Code

      1. <?php
      2. session_start();
      3. $con=mysqli_connect("localhost","root","","test");
      4. $naam = $_POST["naam"];
      5. $email = $_POST["email"];
      6. // Check connection
      7. if (mysqli_connect_errno())
      8. {
      9. echo "Failed to connect to MySQL: " . mysqli_connect_error();
      10. }
      11. $check="SELECT COUNT(*) FROM registreren WHERE voornaam = '$naam'";
      12. if(mysqli_query($con,$check)>=)
      13. {
      14. echo "Bestaat al<br/>";
      15. }
      16. else {
      17. echo "Bestaat nog niet";
      18. }
      19. mysqli_close($con);
      20. ?>
      Laat alles zien
    • 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


      PHP Source Code

      1. <?php
      2. session_start();
      3. $con=mysqli_connect("localhost","root","","test");
      4. $naam = $_POST["naam"];
      5. $email = $_POST["email"];
      6. // Check connection
      7. if (mysqli_connect_errno())
      8. {
      9. echo "Failed to connect to MySQL: " . mysqli_connect_error();
      10. }
      11. $check="SELECT COUNT(*) FROM registreren WHERE voornaam = '$naam'";
      12. if(mysqli_query($con,$check)>=1)
      13. {
      14. echo "bestaat al<br/>";
      15. }
      16. else {
      17. echo "Bestaat nog niet";
      18. }
      19. mysqli_close($con);
      20. ?>
      Laat alles zien

      Post werd 1x aangepast, het laatst door FierRo ().

    • 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 Source Code

      1. $check= "SELECT * FROM registreren WHERE voornaam = '$naam'";
      2. $result_query = mysqli_query($con, $check);
      3. 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 w3schools.com/php/func_mysqli_num_rows.asp.
      PHP, JAVA, C#, JAVASCRIPT, HTML(5), CSS(3) developer.
      Vragen?! Stuur me gerust een prive bericht :) !
    • 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:

      PHP wrote:

      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:
      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 .