[mysql] ontdubbelen email

Pagina: 1
Acties:

  • x-man
  • Registratie: September 2001
  • Laatst online: 14-05 09:47

x-man

Proud newbie!

Topicstarter
Ik heb een tabel waarbij je je inschrijving kan bevestigen. Mensen kunnen zich inschrijven en krijgen een mailtje met een link om mail_bevestiging (zie tabel) van 0 naar 1 te zetten.
Dus mensen kunnen zich meerdere keren inschrijven en krijgen voor elke inschrijving ook een bevestiging, alleen ze kunnen uiteindelijk maar 1 inschrijving bevestigen.

Nou wil ik de mensen die hun inschrijving nog NIET bevestigd hebben en mensen die zich dubbel hebben ingeschreven maar ook niet hebben bevestigd, weer een mailtje krijgen om zich alsnog in te laten schrijven. Mensen die dubbel hebben ingeschreven en 1 inschrijving hebben bevestigd wil ik niet hebben en ik wil ook niet dubbele mailtjes sturen naar mensen die zich dubbel hebben ingeschreven.

Kort gezegd:

code:
1
2
((Dubbel mail ingeschreven en onbevestigd) + (enkel mail ingeschreven en onbevestigd)) - 
((dubbel mail ingeschreven en bevestigd) + (enke mail ingeschrevenl en bevestigd))


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$query1 = mysql_query("SELECT email, mail_bevestiging FROM `tabel`
 group by email having count(email)>1 and mail_bevestiging = 1")or die ("Error: ". mysql_error());

plus

$query2 = mysql_query("SELECT email, mail_bevestiging FROM `tabel`
 group by email having count(email)<2 and mail_bevestiging = 0")or die ("Error: ". mysql_error());

min

$query3 = mysql_query("SELECT email, mail_bevestiging FROM `tabel`
 group by email having count(email)>1 and mail_bevestiging = 0")or die ("Error: ". mysql_error());

$query4 = mysql_query("SELECT email, mail_bevestiging FROM `tabel` 
group by email having count(email)<2 and mail_bevestiging = 1")or die ("Error: ". mysql_error());


email mail_bevestiging
bla@bla.com
dag@dag.com
bla@bla.com
mail@mail.com
0
1
1
0


Ehmm..ben ik duidelijk? Ben een beetje moe geworden :P

Ik wil dit met een join doen. Lijkt me het makkelijkst.
Maar hoe moet ik dit doen? Iemand een idee.

Better a newbie in one hand then ten wannabe-hacker-scriptkiddies on your server.


  • Batsies
  • Registratie: Mei 2002
  • Laatst online: 27-01-2022

Batsies

E-Developing

Kan je niet iets met distinct doen?

E-Developing


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Waarom doe je in :X -naam zo lastig en leg je niet gewoon uberhaupt een unique constraint op het email veld :?

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • DukeBox
  • Registratie: April 2000
  • Niet online
drm schreef op 08 december 2003 @ 19:08:
Waarom doe je in :X -naam zo lastig en leg je niet gewoon uberhaupt een unique constraint op het email veld :?
Mijn idee..

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

drm schreef op 08 december 2003 @ 19:08:
Waarom doe je in :X -naam zo lastig en leg je niet gewoon uberhaupt een unique constraint op het email veld :?
Of een unique constraint op email _en_ mail_bevestiging, mocht je perse beide varianten van een inschrijving willen toelaten op een emailadres ;)

Een andere oplossing is meerdere tabellen gebruiken, een voor onbevestigde en een voor bevestigde inschrijvingen, de eerste geen unique-constraint op de emailvelden en de tweede wel.

  • x-man
  • Registratie: September 2001
  • Laatst online: 14-05 09:47

x-man

Proud newbie!

Topicstarter
drm schreef op 08 december 2003 @ 19:08:
Waarom doe je in :X -naam zo lastig en leg je niet gewoon uberhaupt een unique constraint op het email veld :?
Omdat mensen die een fout maken tijdens een inschrijving, zich niet meer zouden kunnen inschrijven.
Dit is op het moment voor een enquete.

Nou moeten er in de toekomst meerdere inschrijvingen mogelijk zijn via email, aangezien er ook dingen verkocht zullen worden. Een klant die later terugkomt, kan immers later weer een bestelling doen. (Let op dit is geen winkel)

Dit wordt dus een script die eens in de zoveel tijd op een paar tabellen zal gaan lopen.

Better a newbie in one hand then ten wannabe-hacker-scriptkiddies on your server.


  • x-man
  • Registratie: September 2001
  • Laatst online: 14-05 09:47

x-man

Proud newbie!

Topicstarter
Batsies schreef op 08 december 2003 @ 19:01:
Kan je niet iets met distinct doen?
Ik zal het even proberen.

Better a newbie in one hand then ten wannabe-hacker-scriptkiddies on your server.


  • x-man
  • Registratie: September 2001
  • Laatst online: 14-05 09:47

x-man

Proud newbie!

Topicstarter
Nou ik ben eruit

code:
1
2
3
4
5
6
7
8
9
10
$query1 = mysql_query("SELECT distinct email,count(email), max(mail_bevestiging) as m
FROM `tabel` group by email order by mail_bevestiging")or die ("Error: ". mysql_error());

while($rows1=mysql_fetch_object($query1))   {
  if (($rows1->m) == 0) {
     $gewenste_mail = $rows1->email;
     echo $gewenste_mail;
     echo "<BR>";
 }
}


Laat zien welke email al bevestigd heeft en ontdubbeld tegelijk.

Mijn probleem was, dat distinct eerst niet liet zien wat ik wilde zien, want hij pakte de eerste mail_bevestiging bij dubbele. Dus bij mail_bevestiging stond er vaak een 0 i.p.v. een 1. Dit is dus opgelost door er max(mail_bevestiging) voor te zetten.

Waarom ik daar niet eerder aangedacht had? Slaapgebrek en te moeilijk denken :P
Bedankt iig.

[ Voor 19% gewijzigd door x-man op 09-12-2003 14:19 ]

Better a newbie in one hand then ten wannabe-hacker-scriptkiddies on your server.


  • x-man
  • Registratie: September 2001
  • Laatst online: 14-05 09:47

x-man

Proud newbie!

Topicstarter
code:
1
2
3
4
5
6
7
8
9
10
11
$query1 = mysql_query("SELECT distinct email,count(email), 
mail_bevestiging FROM `tabel` group by email having 
mail_bevestiging = 0 order by mail_bevestiging")or die ("Error: ". mysql_error());

while($rows1=mysql_fetch_object($query1))   {
  
     $gewenste_mail = $rows1->email;
     echo $gewenste_mail;
     echo "<BR>";
 
}


Deze is nog beter..met having. :)

Edit 1 Sorry WOAMI..

[ Voor 26% gewijzigd door x-man op 12-12-2003 12:35 ]

Better a newbie in one hand then ten wannabe-hacker-scriptkiddies on your server.


  • whoami
  • Registratie: December 2000
  • Laatst online: 15:14
Er bestaat zoiets als een edit-knop. Gebruik die!

https://fgheysels.github.io/

Pagina: 1