Wat doet mysql_nuw_rows in deze code?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jerry php

Jerry php

02/11/2011 12:43:44
Quote Anchor link
Ik heb van school deze code gekregen, alleen heb ik geen gelegenheid gehad om het te vragen, daarom raadpleeg ik even het forum. Mijn vraag ik wat mysql_nuw_rows hier voor functie heeft, want ik weet dat hij de rijen in een tabel telt, maar hij zegt dat als hij meer is als 0 dat hij dan niet bestaat, maar dat snap ik niet?
Ik snap wel dat het iets te maken heeft met het email die hij ook bij $query pakt.

Kan iemand het me uitleggen?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php

include "dbconfig.php";

if(isset($_POST['registreren']))
{

    $email = $_POST['email'];
    $wachtwoord = $_POST['wachtwoord'];
    $query = "SELECT * FROM gebruikers WHERE email='$email'";
    
    $result = mysql_query($query, $connect)
            or die(mysql_error());
    
    if(mysql_num_rows($result) > 0)
    {

        $tekst = "Dit e-mailadres bestaat al.<br />
                  <a href=registreren.php>Opnieuw registreren</a>"
;
    }

    
    else
    {
        $query = "INSERT INTO gebruikers (email, wachtwoord)
                  VALUES ($email, $wachtwoord)"
;
        
        $result = mysql_query($query)
            or die(mysql_error());
        
        $tekst = "Bedankt voor uw aanmelding. <br />
                  Je kunt nu <a href=inlog.php>hier</a> inloggen."
;
    }


    die ($tekst);
    
}


?>


Groet jerry
 
PHP hulp

PHP hulp

23/12/2024 18:50:31
 
Jasper DS

Jasper DS

02/11/2011 12:45:02
Quote Anchor link
ik zou toch nog eens naar de leerkracht gaan met deze code want dit is niet correct.

- checken of er gepost is doe je met if($_SERVER['REQUEST_METHOD'] == 'POST')
- Wachtwoord is niet gecodeert
- or die is geen foutafhandeling

voor info over mysql_num_rows kan je naar de documentatie gaan.
Gewijzigd op 02/11/2011 12:47:19 door Jasper DS
 
- Ariën  -
Beheerder

- Ariën -

02/11/2011 12:45:16
Quote Anchor link
Kijken of het aantal hoger is dan 0, in dat geval bestaat het mail-adres is.

En waarom die die() op het eind? Als ik iets goeds doe, moet een mens dan ook dood?
Gewijzigd op 02/11/2011 12:47:07 door - Ariën -
 
- SanThe -

- SanThe -

02/11/2011 12:53:38
Quote Anchor link
Al de 'oude fouten' uit je vorige posts zitten hier weer in. Lees je vorige posts nog eens door. Script is ook nog eens lek => sql-injection.
 
Jerry php

Jerry php

02/11/2011 22:33:36
Quote Anchor link
Gelukkig is alle commentaar voor mijn "leraar".

Het is inderdaad nog niet uitgebreid, dus laat de sql-injection en de gecodeerde wachtwoorden maar even weg.

Ikzelf zou inderdaad die $tekst niet op deze manier doen, maar op de manier met een array, en de array later uitlezen. Toch?

De oude fouten zijn niet van mij. Ik zou namelijk eerst kijken of het gepost is, en dan pas variablen gaan maken etc.

Maar even op mijn vraag in te komen, en dan antwoord te geven op @aar.

Als hij dan 0 is, dan heeft hij toch nog geen inhoud, dus bestaat het email adres niet, dus dan geeft hij toch een error aan omdat de $result niet gevonden kan worden?
 
Jelmer -

Jelmer -

02/11/2011 23:01:38
Quote Anchor link
Nope. Een geldige query die geen resultaten oplevert is nog steeds een geldige query. En die kan prima uitgevoerd worden, dus mysql_query() zal gewoon slagen.

Waar jij het waarschijnlijk mee verwart is mysql_fetch_assoc aanroepen op het resultaat. Dat zal ook zonder fouten gaan, behalve dat je niet een array met de velden terugkrijgt, maar false, omdat het het laatste resultaat is. Als je daar niet rekening mee houdt, dan krijg je inderdaad foutmeldingen.

edit: technischere uitleg: mysql_query geeft een verwijzing naar de plek waar de resultaten staan terug, maar dus niet de resultaten zelf. Je kan dan met mysql_num_rows kijken hoeveel resultaten er zijn, en met mysql_fetch_assoc kan je een voor een de resultaten ophalen en omzetten in een PHP array.
Gewijzigd op 02/11/2011 23:03:53 door Jelmer -
 
Jerry php

Jerry php

03/11/2011 09:41:04
Quote Anchor link
Duidelijke uitleg, bedankt!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.