Avatar billede phpbegynder2004 Nybegynder
26. september 2005 - 19:17 Der er 3 kommentarer og
2 løsninger

Send email til bestemte personer

Hej,

Jeg har nogle forskellige services på min hjemmeside og ville gerne have at de oprettede brugere kunne afkrydse hvilke kategorier de ville modtage info om vha. en nogle checkboxe.
De har allerede afgivet deres email som står i tabellen users.

Jeg har tænkt mig at de får vist en side med kategorierne:
- Fodbold (checkbox)
- Håndbold (checkbox)
- Skole (checkbox)
- Computer (checkbox)

Når de så afkrydser nogle kategorier bliver det smidt ind i en database. F.eks. valgte_kategorier

brugerid | fodbold | handbold | skole | computer
  4    |  ja    |  nej    |  nej |  nej 

1. Hvordan sender jeg nu en mail til alle "where fodbold='ja'" da deres email adresser står i users.

2. Hvordan forbliver de valgte checkboxe valgte? Så næste gang de går ind på "vælg kategorier" siden, kan de se hvilke de har valgt og hvilke de ikke har valgt?

Ved ikke om det er kringlet formuleret.

På forhånd mange tak og bare spørg hvis i tvivl!
Avatar billede jaw Nybegynder
26. september 2005 - 19:55 #1
1 bør vist kunne løses således:
$q = mysql_query("
  SELECT users.mailadr
  FROM users
  LEFT JOIN valgte_kategorier ON (valgte_kategorier.brugerid = users.brugerid)
  WHERE valgte_kategorier.fodbold = 'ja'
");
while($row = mysql_fetch_assoc($q)) {
  //mail();
}

2:

if(isset($_GET['id'])) {
  $q = mysql_query("SELECT fodbold, handbold, skole, computer FROM valgte_kategorier WHERE brugerid = ".$_GET['id']) or die(mysql_error());
  while($row = mysql_fetch_assoc($q)) {
    $fodbold = ($row['fodbold'] == "ja") ? "checked" : "";
    $handbold= ($row['handbold'] == "ja") ? "checked" : "";
    $skole = ($row['skole'] == "ja") ? "checked" : "";
    $computer = ($row['computer'] == "ja") ? "checked" : "";
  }

<input type='checkbox' name='skole' value='skole' ".$checked.">
<input type='checkbox' name='computer' value='computer' ".$checked.">
Avatar billede phpbegynder2004 Nybegynder
27. september 2005 - 17:53 #2
Hej,

Det virker fint nu!
Forstod dog ikke disse:
$fodbold = ($row['fodbold'] == "ja") ? "checked" : "";
Så lavede dem om til disse:
if($row['fodbold']=="ja"){
$fodbold="checked";
}

Det virker nu, men vil gerne lære lidt om din metode, hvis den er mere effektiv!
Tak for hjælpen og læg et svar!
Avatar billede jaw Nybegynder
27. september 2005 - 17:57 #3
Egentlig så gør de præcis det samme som en if-else, den er dog kun på 1 linie, og begrænser sig i at man ikke kan lave f.eks. flere elseif {}.

Egentlig står der:

$variabel = ($row['fodbold'] == "ja") ? "ja" : "nej";
$variabel vil nu indeholde ja hvis $row['fodbold'] = ja, og den vil indeholde nej hvis $row['fodbold'] indeholder alt andet end "ja".

Forståeligt? :)

(Og 200 point er måske lige i overkanten?!)
Avatar billede phpbegynder2004 Nybegynder
28. september 2005 - 23:31 #4
Okay.. 50/50 ?
Avatar billede jaw Nybegynder
28. september 2005 - 23:33 #5
Helt i orden :)
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