Avatar billede Slettet bruger
28. januar 2009 - 10:16 Der er 5 kommentarer og
1 løsning

mysql query og variabel

Ok, nu fatter jeg hat...

Jeg har en database med en række brugere, der bl.a. har noteret, om de har betalt (med hhv "ja" eller "nej").

Nu vil jeg gerne vise - sortere - brugerne på en side - altså enten vise ALLE eller kun vise dem, der ikke har betalt:
Jeg starter med at kalde siden via enten:
?kursus=001&vis_deltagere=1
?kursus=001&vis_deltagere=2
?kursus=001&vis_deltagere=3
?kursus=001&vis_deltagere=4


For en god ordens skyld tjekker jeg om siden er kaldt UDEN "vis_deltagere":
if(!empty($_GET['vis_deltagere'])){
  $vis_deltagere = $_GET['vis_deltagere'];
}else{
  $vis_deltagere = 4;
}

Og her er så min sql:
if ($vis_deltagere = '1')
{
$query = mysql_query("SELECT * FROM deltagere WHERE deltager_kursus = '$kursus_id_query' AND deltager_tilmeldt = 'ja'");
}
elseif ($vis_deltagere = '2')
{
$query = mysql_query("SELECT * FROM deltagere WHERE deltager_kursus = '$kursus_id_query' AND deltager_sendtfaktura = 'ja'");
}
elseif ($vis_deltagere = '3')
{
$query = mysql_query("SELECT * FROM deltagere WHERE deltager_kursus = '$kursus_id_query' AND deltager_betalt = 'ja'");
}
elseif ($vis_deltagere = 4)
{
$query = mysql_query("SELECT * FROM deltagere WHERE deltager_kursus = '$kursus_id_query' ");
}

(kursus_id_query er her i eksemplet de "001")

Der er 2 personer i min database - begge med ens svar mht. betalt osv. Men hvis jeg kalder siden via "?kursus=001&vis_deltagere=4" (altså hvor den skal vise ALLE) viser den ingen via ovenstående sql.

Bruger jeg KUN denne sql (også altså sletter alle if/elseif ovenfor):
$query = mysql_query("SELECT * FROM edular_deltagere WHERE deltager_kursus = '$kursus_id_query' ");

- ja, så virker det fint - og begge brugere vises!

Håber det giver mening - for det gør det dælme ikke for mig! :-D
Avatar billede Slettet bruger
28. januar 2009 - 10:19 #1
Hov - og det er det samme uanset om der står:
elseif ($vis_deltagere = 4)
eller
elseif ($vis_deltagere = '4')
Avatar billede erikjacobsen Ekspert
28. januar 2009 - 10:35 #2
Du skal i hvert fald bruge == i sammenligning:

if ($vis_deltagere == '1')
Avatar billede Slettet bruger
28. januar 2009 - 10:41 #3
Ah ja - den var klar...

Men kan se, at det vist har noget med at der kan stå "NULL" i databasen. Og der virker eks. "AND deltager_sendtfaktura != 'ja'");" ikke?
Avatar billede Slettet bruger
28. januar 2009 - 10:50 #4
Hmm ja, det var det, der var problemet - må hellere smide "nej" i databasen som default. Mange tak for hjælpen dog - svar gerne for point!
Avatar billede erikjacobsen Ekspert
28. januar 2009 - 10:54 #5
Jeg samler ikke på point, tak. Svar selv, og accepter dit eget svar.
Avatar billede Slettet bruger
28. januar 2009 - 11:01 #6
Helt i orden - takker alligevel!
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