Avatar billede Slettet bruger
12. december 2005 - 11:03 Der er 19 kommentarer og
1 løsning

20 felter, men kun 10 forskellige tal - hvordan findes de?

Hej

Jeg har 20 felter som hver indeholder et tal (tallet svare til ID i en DB), men der er kun 10 forskellige tal. dvs at hvert tal står der to gange. Da jeg skal sende en mail til alle de personer, som står i felterne, så ønsker jeg kun at sende til personerne en gang, så de ikke modtager mail to gange.


Håber der er nogen som forstår mig
Avatar billede den-evil Nybegynder
12. december 2005 - 11:05 #1
Kan du ikke bare vælge de første 10 så?

$SQL = "SELECT * FROM tabel LIMIT 10";
Avatar billede jaw Nybegynder
12. december 2005 - 11:07 #2
Det forstår jeg ikke. Dit problem er så, at de kommer 2 gange, eller hvad? Det er jo klart, at hvis mailen bliver sat til at sende den til hver person 2 gange, så modtager de den også 2 gange :)

Så forklar lige dit problem igen, og evt. gerne med en stump kode måske...
Avatar billede Slettet bruger
12. december 2005 - 11:17 #3
den-evil> Det kan jeg ikke, da tal 1 og 2 måske er ens

jaw> Jeg har 20 felter, som hver indholder 20 tal, dog er der kun 10 forskellige tal. Dvs at hvert tal er der 2 gange.

FX.

felt 1: 10
felt 2: 11
felt 3: 12
felt 4: 13
felt 5: 14
felt 6: 15
felt 7: 16
felt 8: 17
felt 9: 18
felt 10: 19
felt 11: 19
felt 12: 18
felt 13: 17
felt 14: 16
felt 15: 15
felt 16: 14
felt 17: 13
felt 18: 12
felt 19: 11
felt 20: 10

Men det kunne også være en anden rækkefølge
Avatar billede jaw Nybegynder
12. december 2005 - 11:19 #4
Men SKAL du have 20? Eller skal du have de 10 forskellige? Jeg forstår sku ikke helt endnu, desværre.
Avatar billede Slettet bruger
12. december 2005 - 11:21 #5
Jeg ønsker kun at få 10 tal ud og det skal være 10 forskellige. Hvis vi tager eksemplet ovenfor, så ønsker jeg tallene: 10 til 19
Avatar billede Slettet bruger
12. december 2005 - 11:22 #6
Jeg har prøvet at lave nogle/mange if sætninger for at finde de 10 tal, men det virker ikke 100% og så håber jeg på at der er en smart måde
Avatar billede jaw Nybegynder
12. december 2005 - 11:23 #7
$q = mysql_query("SELECT * FROM tabel GROUP BY feltnavn LIMIT 10");
Avatar billede Slettet bruger
12. december 2005 - 11:57 #8
Det er sikkert mig som er dårlig til at forklar det.
I min DB bliver hvert felt gemt for sig selv. så jeg kan ikke bruge GROUP BY. Nu skal der ikke lægges for meget i den rækkefølge jeg har valgt. Denne kunne være meget anderledes.
Avatar billede Slettet bruger
12. december 2005 - 11:59 #9
Jeg har 20 input felter som indeholder et tal. Jeg ved at der altid er 10 forskellige tal. Dvs at hvert af de 10 tal, stå der 2 gange. Jeg ønsker så en løsningen så jeg kan få de tal ud trukket ud, så jeg har en mulighed for at sende en mail det dem.
Avatar billede jaw Nybegynder
12. december 2005 - 12:04 #10
Så brug array_unique() måske. Hvordan har du udtrækket efter udtrækket? Hvis det er et array, så vil array_unique() fjerne dupletter.
Avatar billede Slettet bruger
12. december 2005 - 12:07 #11
Ok. Kender dog ikke array_unique(). Kan du give et lille eksempel på hvordan man bruger funktionen?
Avatar billede jaw Nybegynder
12. december 2005 - 12:08 #12
Ja.

$array = array(0, 1, 1, 2, 3);
$nyt_array = array_unique($array);

så vil du have et array med 0, 1, 2 og 3 - altså den fjerne det ene 1-tal.
Avatar billede Slettet bruger
12. december 2005 - 12:14 #13
ok. Hvis jeg udskriver nyt_array ud, så står der bare array...
Avatar billede jaw Nybegynder
12. december 2005 - 12:16 #14
Det er klart, det er jo et array.

$array = array(0, 1, 1, 2, 3);
$nyt_array = array_unique($array);
echo "<pre>";
print_r($nyt_array);
echo "</pre>";
Avatar billede flim Nybegynder
12. december 2005 - 12:50 #15
Kig evt. her: http://www.1keydata.com/sql/sqldistinct.html

Med DISTINCT trækker du kun værdien ud 1 gang, selvom den optræder flere gange. Måske det er det du er ude efter?
Avatar billede Slettet bruger
12. december 2005 - 15:32 #16
flim > Desværre hjælper det ikke, da det ligger i samme række.

jaw > Hvordan er det så muligt at hente det første tal ud. dvs 0 (i det eks. du har givet)?
Avatar billede jaw Nybegynder
12. december 2005 - 16:06 #17
echo $nyt_array[0];
Avatar billede Slettet bruger
12. december 2005 - 16:22 #18
Yes. Nu kan jeg finde ud af det. Mange tak for hjælpen.

Jeg har brugt Jaw svar, så hvis Jaw lige smider et svar vil det være kanon :-)
Avatar billede jaw Nybegynder
12. december 2005 - 16:24 #19
Det gør jeg da vældig gerne - og selv tak :)

Og så kan du jo altid køre det i en løkke hvis du vel:

for($i = 0; $i < 10; $i++) {
  echo $nyt_array[$i]."<br />";
}

...eller hvad du nu vil med det :)
Avatar billede Slettet bruger
12. december 2005 - 16:25 #20
Jaw > Det er lige hvad jeg har gjort :-)
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