login  Naam:   Wachtwoord: 
Registreer je!
 Forum

puntensysteem

Offline Ultimatum - 05/02/2006 19:36
Avatar van UltimatumPHP expert ben bezig met een puntensysteem, maar om te kijken of de desbetreffende persoon al een account in de bank heeft wil ik dit zo checken

  1. <?php
  2. $bank = mysql_query("SELECT * FROM bank WHERE username = '".$logged['username']."'") or die(mysql_error());
  3. $bank = mysql_fetch_array($bank);
  4.  
  5. $logged = mysql_query("SELECT * FROM users WHERE id= '$_COOKIE[id]' AND password = '$_COOKIE[password]'") or die(mysql_error());
  6. $logged = mysql_fetch_array($logged);
  7.  
  8. if($bank['username'] != $logged['username']) {
  9. echo "You don't have an account yet";
  10. }else{
  11. echo "You already have an account";
  12. }
  13. ?>


alleen ik krijg altijd dat ik geen account heb terwijl ik dezelfde username (ultimatum) in de tabel heb gezet welke ik ook mee ben ingelogd

wat doe ik verkeerd :p

5 antwoorden

Gesponsorde links
Offline Stijn - 05/02/2006 19:38
Avatar van Stijn PHP expert
  1. <?
  2. $logged = mysql_query("SELECT * FROM users WHERE id= '".$_COOKIE['id']."' AND password = '".$_COOKIE['password']."'") or die(mysql_error());
  3. ?>


dude, hoeveel van die zelfde fouten gaan ze nog posten :/
Offline Voldemort - 05/02/2006 19:38
Avatar van Voldemort PHP ver gevorderde $logged['username'] => Als deze verwijst naar de query eronder, dan moet je de 2 omdraaien van plaats.
Offline Ultimatum - 05/02/2006 19:42 (laatste wijziging 05/02/2006 19:43)
Avatar van Ultimatum PHP expert @stijn dat werkt gewoon alleen het vergelijken niet, dus als je me daar mee helpt ipv van dingen te verbeteren die al werken

@voldermort, normaal staat die $logged query in mijn config file, maar heb hem hier even neergezet zodat het duidelijk bleef 
Offline Rens - 05/02/2006 19:49
Avatar van Rens Gouden medaille

Crew algemeen
Duh, lijkt me nogal logisch...
  1. if($bank['username'] != $logged['username']) {

Zal altijd true opleveren.

Bijvoorbeeld:
$logged['username'] is Rensjuh.
Dan is je query:
  1. SELECT * FROM bank WHERE username = "Rensjuh"

Als jij dan het resultaat fetched, krijg je een array $bank.
Met de query haal jij "username" e.d. op, waar username="Rensjuh".
Dus je "username" uit de query, zal "Rensjuh" bevatten, omdat je expressie is 'username="Rensjuh"'.
Snappen?

Het volgende zal beter werken:
  1. <?php
  2. $bank = mysql_query("SELECT COUNT(id) AS totaal FROM bank WHERE username = '".$logged['username']."'") or die(mysql_error());
  3. if(mysql_result($bank, 0, "totaal") == 0)
  4. {
  5. echo "You don't have an account yet";
  6. } else
  7. {
  8. echo "You already have an account";
  9. }
  10. ?>


Deze telt het aantal keren dat een rij met username="Rensjuh" voorkomt.
Als het aantal keren gelijk is aan 0, komt er dus geen rij voor met username="Rensjuh".
Offline Ultimatum - 05/02/2006 19:52 (laatste wijziging 06/02/2006 21:35)
Avatar van Ultimatum PHP expert thanx het werkt, nu je het zo stelt zie ik inderdaad dat het alleen true kan worden

ok, laat maar het werkt al 

topic kan dicht 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.227s