Avatar billede human Nybegynder
25. oktober 2003 - 19:59 Der er 14 kommentarer og
1 løsning

tjekke 2 værdier i en query

lad os sige jeg kører denne her:
if(mysql_result(mysql_query("SELECT COUNT(*) FROM users WHERE login='$tvlogin'"),0) == 1)

Men vil også gerne gøre det samme ved $tvemail. Altså tjekke om email adressen allerede findes i databasen.

Hvordan? :o)
Avatar billede erikjacobsen Ekspert
25. oktober 2003 - 20:00 #1
if(mysql_result(mysql_query("SELECT COUNT(*) FROM users WHERE login='$tvlogin' or mail='$tvmail'") ,0) >= 1)
Avatar billede human Nybegynder
25. oktober 2003 - 20:08 #2
Okay, virker fint!

Men hvad hvis jeg vil give et forskelligt output?
Før gjorde jeg således:

if(mysql_result(mysql_query("SELECT COUNT(*) FROM users WHERE login='$tvlogin' or email='$tvemail'") ,0) >= 1) {
    print "Desired username is not available";
        }else{ blabla.

Men hvad hvis jeg vil give en forskellig besked, så de ved om det er deres username eller email den er gal med?
Avatar billede erikjacobsen Ekspert
25. oktober 2003 - 20:12 #3
så lav to sql-sætninger
Avatar billede human Nybegynder
25. oktober 2003 - 20:15 #4
Æv, havde jeg gjort først, men tænkte det der nok kunne lade sig gøre.
Avatar billede erikjacobsen Ekspert
25. oktober 2003 - 20:17 #5
Du kan jo også begynde at kigge i rækkerne i stedet for bare at tælle.
Avatar billede human Nybegynder
25. oktober 2003 - 20:23 #6
Hvis det er noget du gider give et eksempel på ville det være dejligt.
Avatar billede erikjacobsen Ekspert
25. oktober 2003 - 20:26 #7
Skitse
  SELECT login,mail FROM users WHERE login='$tvlogin' or mail='$tvmail'

så kan der være 0,1,2 rækker (mysql_num_rows).
Er der rækker checker du om felterne login og/eller mail har de værdier du kigger efter
Avatar billede human Nybegynder
25. oktober 2003 - 20:32 #8
Lyder fornuftigt, tager et kig på det når jeg har spist.
Avatar billede human Nybegynder
25. oktober 2003 - 21:54 #9
Hmm.. Det kan jeg godt nok ikke lige finde ud af.

Hvis vi siger jeg gør sådan her:
$result = mysql_query("SELECT email,login FROM users WHERE login='$tvlogin' or email='$tvemail'")

Hvordan skal jeg så tjekke om der findes felter med det samme i?

Man kunne vel gøre noget lign.: if($tvlogin == $row[login]) { bla }

Men hvordan kommer jeg frem dertil? Og vil det overhovedet virke?
Avatar billede erikjacobsen Ekspert
25. oktober 2003 - 22:04 #10
$result = mysql_query("SELECT email,login FROM users WHERE login='$tvlogin' or email='$tvemail'") or die(mysql_error());
$emailok=true;
$userok=true;
while ($row=mysql_fetch_array($result)) {
  if ($row['email']==$tvemail) { $emailok = false; }
  if ($row['login']==$tvlogin) { $emailok = false; }
}
mysql_free_result($result);
if (!$emailok) {
  print "Den email lugter";
}
if (!$userok) {
  print "Du er en tiger";
}
Avatar billede human Nybegynder
25. oktober 2003 - 22:28 #11
Okay.. syret. Men hvad hvis jeg vil have den til at den skal skrive noget hvis enten $tvemail eller $tvlogin eksistere. Istedet for den skriver hvis det ikke eksistere som den gør nu.
Avatar billede erikjacobsen Ekspert
25. oktober 2003 - 22:30 #12
Er det ikke det den gør allerede?  Bortset fra en lille fejl du selv får
fornøjelse af at finde.
Avatar billede human Nybegynder
25. oktober 2003 - 22:35 #13
Hmm.. Det synes jeg godt nok ikke jeg kan se mig ud af. Synes og det fungere underligt.
Avatar billede erikjacobsen Ekspert
25. oktober 2003 - 22:37 #14
if ($row['login']==$tvlogin) { $emailok = false; }

rettes til

if ($row['login']==$tvlogin) { $userok = false; }
Avatar billede human Nybegynder
25. oktober 2003 - 23:16 #15
Du skal have mange tak! :o)

Går ikke ud fra du vil have poing?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester