Toon posts:

[PHP+MySQL] kijken of 'iets' al bestaat in mijn DB

Pagina: 1
Acties:

Verwijderd

Topicstarter
ik ben nou al 2 dagen onafgebroken(behalve op school en als ik slaap/eet) aan het scripten.

en nu moet ik een gebruiker toevoegen, eerst kijk ik of er wel een gebruikersnaam is ingevuld, daarna of de gebruiker al bestaat.
anders laat ik even nu 'tyhwghsghsfgh' als text zien, maar daar staat normaal het toevoegen in de DB.

als de code zo is:
PHP:
1
<?    if ($username=="") { echo "geen gebruikersnaam gekozen"; }    elseif(mysql_query("SELECT username FROM users WHERE username = '$username'")) {        echo "De gebruikersnaam $username komt al in het systeem voor. Kies een andere gebruikersnaam.";    }else { echo "tyhwghsghsfgh"; }?>

krijg ik altijd dit te zien 'De gebruikersnaam 1234 komt al in het systeem voor. Kies een andere gebruikersnaam.'.

gebruik ik dit als code:
PHP:
1
<?    if (!$username=="") { echo "geen gebruikersnaam gekozen"; }    elseif(mysql_query("SELECT username FROM users WHERE username = '$username'")) {        echo "De gebruikersnaam $username komt al in het systeem voor. Kies een andere gebruikersnaam.";    }else { echo "tyhwghsghsfgh"; }?>

dan gaat hij altijd naar deze text 'tyhwghsghsfgh'.

nou het probleem is dus dat hij het ALTIJD doet, dus als de user bestaat en als hij niet bestaat.

TABLE 'users'
user_id(autoomhoog)
username als varchar(20)

hij doet gewoon niet wat ik wil.
ik heb al de search gebruikt in P&W, maar wat daar staat werkt niet :(
vooral verhaaltjes over de '!', maar daar heb ik nix aan.
ik moet zorgen dat dit script werkt.

ik ben nou al lang aan het proberen, maar het wil gewoon niet lukken.
heb 3/4e website af, alleen dit en een paar andere dingen moet ik nog werkend maken.

Verwijderd

Check eens op die mysql_query() wel FALSE retourneert als ie geen resultaten vindt in de tabel...

  • Nielsz
  • Registratie: Maart 2001
  • Niet online
Zou je niet eens gaan fetchen :?

Verwijderd

Topicstarter
Op woensdag 26 juni 2002 00:40 schreef Nielsz het volgende:
Zou je niet eens gaan fetchen :?
:?
dit: $TjekkedUser=mysql_fetch_array($TjekUserProg); ?
nee dat moet dus niet, anders zal hij een error geven als de user niet bestaat.
(geloof ik).
Op woensdag 26 juni 2002 00:37 schreef Lusch het volgende:
Check eens op die mysql_query() wel FALSE retourneert als ie geen resultaten vindt in de tabel...
hoe?
ik heb het getest met user 1234(die staat in de tabel) en met user 0987(die staat er niet in), en dan geeft hij wat ik boven zij.

  • Neman
  • Registratie: September 2000
  • Laatst online: 30-08 12:47

Neman

Een uit de lucht gegrepen naam

mysql_query() returns TRUE (non-zero) or FALSE to indicate whether or not the query succeeded. A return value of TRUE means that the query was legal and could be executed by the server. It does not indicate anything about the number of rows affected or returned. It is perfectly possible for a query to succeed but affect no rows or return no rows.
Gaat er nu een lichtje branden?

  • Nielsz
  • Registratie: Maart 2001
  • Niet online
Op woensdag 26 juni 2002 00:41 schreef KingOfDos het volgende:

[..]

:?
dit: $TjekkedUser=mysql_fetch_array($TjekUserProg); ?
nee dat moet dus niet, anders zal hij een error geven als de user niet bestaat.
(geloof ik).
[..]
Dan doe je dus iets fout.

Verwijderd

Topicstarter
Op woensdag 26 juni 2002 00:43 schreef Neman het volgende:

[..]

Gaat er nu een lichtje branden?
het brand helder, maar dan?
ik weet echt niet alles van php, ik weet hoe ik gegevens ophaal enzo, maar dit :P
Op woensdag 26 juni 2002 00:45 schreef Nielsz het volgende:

[..]

Dan doe je dus iets fout.
ja dat zeg ik toch?
als je geen user invult dan geeft hij een error, vul je wel een user in dan niet.
daarom heb ik het op deze manier gedaan, maar blijkt niet te werken :(

  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

ik zou deze nog eens doorlezen ;) ...

Om te weten of je query een resultaat op heeft geleverd zul je eerst nog (bijvoorbeeld) een mysql_num_rows moeten uitvoeren om achter het aantal gereturnde rows te komen.

Verwijderd

Topicstarter
Op woensdag 26 juni 2002 00:48 schreef TheRookie het volgende:
ik zou deze nog eens doorlezen ;) ...

Om te weten of je query een resultaat op heeft geleverd zul je eerst nog (bijvoorbeeld) een mysql_num_rows moeten uitvoeren om achter het aantal gereturnde rows te komen.
PHP:
1
<?$HeeftUser = mysql_query("SELECT username FROM users WHERE username = '$username'")$HeeftRows = mysql_num_rows($HeeftUser);?>

geeft error:
Parse error: parse error, unexpected T_VARIABLE in /home/digiskin/public_html/*****/*****.php on line 11

regel 11 is de regel met 'mysql_num_rows'.

wat doe ik dan fout?

  • Neman
  • Registratie: September 2000
  • Laatst online: 30-08 12:47

Neman

Een uit de lucht gegrepen naam

Probeer zoiets (niet getest):
PHP:
1
<?if ($username == NULL){    echo "Geen gebruikersnaam gekozen.";}elseif ( ($result = mysql_query("SELECT username FROM users WHERE username = '$username'")) AND (mysql_num_rows($result) >= 1) ){    echo "De gebruikersnaam $username komt al in het systeem voor. Kies een andere gebruikersnaam.";}?>

Je query is trouwens niet zo veilig met die $username (tenzij je magic_quotes hebt aanstaan, maar is sowieso geen goede oplossing), maar dat is meer zorg voor later ;).
geeft error:
Parse error: parse error, unexpected T_VARIABLE in /home/digiskin/public_html/*****/*****.php on line 11
regel 11 is de regel met 'mysql_num_rows'.

wat doe ik dan fout?
Dat komt waarschijnlijk doordat je een ; vergeet achteraan regel 10 :).

  • DizzyWeb
  • Registratie: Februari 2001
  • Laatst online: 04-09 13:46

DizzyWeb

Ondertiteld

Zeker dat je nergens een $ vergeet? in mysql_num_rows() bijvoorbeeld?

Verwijderd

Topicstarter
Op woensdag 26 juni 2002 01:00 schreef Neman het volgende:
Probeer zoiets (niet getest):
PHP:
1
<?//geknipt ff?>

Je query is trouwens niet zo veilig met die $username (tenzij je magic_quotes hebt aanstaan, maar is sowieso geen goede oplossing), maar dat is meer zorg voor later ;).
1: dat scriptje werkt :D , bedankt!

2: hoezo is mijn query niet veilig met $username?
makkelijk voor hackers ofzo?

  • Neman
  • Registratie: September 2000
  • Laatst online: 30-08 12:47

Neman

Een uit de lucht gegrepen naam

Op woensdag 26 juni 2002 01:09 schreef KingOfDos het volgende:

[..]

1: dat scriptje werkt :D , bedankt!

2: hoezo is mijn query niet veilig met $username?
makkelijk voor hackers ofzo?
1: Graag gedaan :).
2: Check deze page ff :).

Verwijderd

.

[sub]make mental note: /me moet niet posten als ie net wakker is :([/sub]
Pagina: 1