login  Naam:   Wachtwoord: 
Registreer je!
 Forum
Zoeken  Regels  Help
Categorieën > PHP & SQL

twee sql query's

clonedonkey – 28/07/2009 23:05
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

ArieMedia – 28/07/2009 23:12 (Laatst gewijzigd op 28/07/2009 23:18)
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. }


jscoolen – 29/07/2009 02:14 (Laatst gewijzigd op 29/07/2009 02:35)
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.

ArieMedia – 29/07/2009 08:31
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.

jscoolen – 29/07/2009 10:58
In dat geval kun je beter de code van Arie2zero gebruiken.

Gesponsorde links

Dit onderwerp is gesloten.
Actieve forumberichten:

© 2002-2012 Sitemasters.be - Regels - Gehost door: Vircon - Laadtijd: 0.129s