login  Naam:   Wachtwoord: 
Registreer je!
 Forum

twee sql query's

Offline clonedonkey - 28/07/2009 23:05
Avatar van clonedonkeyNieuw lid Om bij een aanmeldingsformulier te kijken of de gebruikersnaam of het email adres al voorkomt kijk ik met onderstaande code hiernaast. Alleen als ik zoals nu "exit;" gebruik dan wordt mijn layout niet meer afgemaakt. Hij stopt echt op dat punt me alle code. Is wel logisch maar als ik het zonder exit; doe dan checkt hij alleen of de gebruikersnaam al bestaat en niet het e-mail adres. Dit slaat hij gewoon over. Hoe kan ik dit wel goed doen ?

  1. <?
  2. $gebruikersnaam2 = $_POST['gebruikersnaam'];
  3. $sql = "SELECT * FROM leden WHERE gebruikersnaam = '" . $gebruikersnaam2 . "'";
  4. $result = mysql_query($sql);
  5. $aantal = mysql_num_rows($result);
  6.  
  7. if ($aantal > 0) {
  8. echo "<br /><strong>Fout: De gebruikersnaam die je hebt gekozen wordt al door iemand anders gebruikt. <br />Kies een andere gebruikersnaam.</strong><br /><br />";
  9. }
  10.  
  11. $email2 = $_POST['email'];
  12. $sql = "SELECT * FROM leden WHERE email = '" . $email2 . "'";
  13. $result = mysql_query($sql);
  14. $aantal = mysql_num_rows($result);
  15.  
  16. if ($aantal > 0) {
  17. echo "<br /><strong>Fout: Het e-mail adres wordt al door iemand anders gebruikt.</strong><br /><br />";
  18. }
  19. elseif(empty($_POST['gebruikersnaam'])){
  20. echo "<br /><br />U heeft geen <b>Gebruikersnaam</b> ingevuld, gelieve alle velden in te vullen.<br /><br />";
  21. }
  22.  
  23. elseif(empty($_POST['email'])){
  24. echo "<br /><br />U heeft geen <b>E-mail adres</b> ingevuld, gelieve alle velden in te vullen.<br /><br />";
  25. }
  26. elseif(empty($_POST['wachtwoord'])){
  27. echo "<br /><br />U heeft geen <b>Wachtwoord</b> ingevuld, gelieve alle velden in te vullen.<br /><br />";
  28. }
  29.  
  30. else{
  31. ?>

4 antwoorden

Gesponsorde links
Offline ArieMedia - 28/07/2009 23:12 (laatste wijziging 28/07/2009 23:18)
Avatar van ArieMedia Gouden medaille

PHP ver gevorderde
Je kan het ook in 1 SQL doen volgensmij..
(Het is laat en ik ben moe)

Als het goed is met
  1. SELECT id FROM leden WHERE gebruikersnaam = "naam" OR email = "email";


Overigens zal ik niet met exit werken, beetje brute manier om ineens je script te stoppen..

Zet bovenaan $bAcces = true; $aError = array();
en maak van alle exit's een $bAcces = false; (VERANDER DIT NOOIT MET EEN GOEDE WAARDE TERUG NAAR TRUE!!! hierdoor gooi je je script omzeep omdat je als het ware andere controles reset.)
en alle "foutmeldingen" sla je zo op $aError[] = 'de foutmelding';
controleer onderaan of $bAcces nogsteeds true is. zo ja ga door, zo nee laat errors zien

  1. if($bAcces === true) {
  2. // ga door!
  3. } else {
  4. foreach($aError as $sError) {
  5. echo $sError.'<br>';
  6. }
  7. }
Offline jscoolen - 29/07/2009 02:14 (laatste wijziging 29/07/2009 02:35)
Avatar van jscoolen HTML interesse Ander idee wat ik heb, wat denk ik iets makkelijk is om te doen en werkend te krijgen is door met if en else te gaan werken:
  1. <?
  2. $uniek=0;
  3.  
  4. $gebruikersnaam2 = $_POST['gebruikersnaam'];
  5. $sql = "SELECT * FROM leden WHERE gebruikersnaam = '" . $gebruikersnaam2 . "'";
  6. $result = mysql_query($sql);
  7. $aantal = mysql_num_rows($result);
  8. if ($aantal > 0) {
  9.  
  10. echo "<br /><strong>Fout: De gebruikersnaam die u hebt gekozen wordt al door iemand anders gebruikt. <br />Kies een andere gebruikersnaam.</strong><br /><br />";
  11. $uniek++;
  12. }
  13. else {
  14. $email2 = $_POST['email'];
  15. $sql = "SELECT * FROM leden WHERE email = '" . $email2 . "'";
  16. $result = mysql_query($sql);
  17. $aantal = mysql_num_rows($result);
  18. if ($aantal > 0) {
  19. echo "<br /><strong>Fout: Het e-mail adres wordt al door iemand anders gebruikt.</strong><br /><br />";
  20. $uniek++;
  21. }
  22. }
  23. if ($uniek== 0) {
  24. echo 'U hebt een unieke gebruikersnaam en een uniek e-mail adres ingevuld!';
  25. }
  26. ?>


Tevens even je tekstjes aangepast, de ene keer gebruik je "je" en de andere keer u.
Offline ArieMedia - 29/07/2009 08:31
Avatar van ArieMedia Gouden medaille

PHP ver gevorderde
jscoolen schreef:
Ander idee wat ik heb, wat denk ik iets makkelijk is om te doen en werkend te krijgen is door met if en else te gaan werken:
[..code..]

Tevens even je tekstjes aangepast, de ene keer gebruik je "je" en de andere keer u.
Dit is hetzelfde als dat ik doe, alleen ik werk met true/false en jij met 0/1.

Daarnaast krijg je bij mij alle errors en bij deze code slechts 1.
Offline jscoolen - 29/07/2009 10:58
Avatar van jscoolen HTML interesse In dat geval kun je beter de code van Arie2zero gebruiken.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.205s