Avatar billede clausga Nybegynder
05. april 2005 - 21:27 Der er 23 kommentarer og
1 løsning

Udskriv noget og sortere noget fra

Jeg har en database med nogle mærker i kunne se sådan her ud:

panasonic
panasonic
jbl
sony
sony
jbl
panasonic

jeg skal have dem ud fra databasen, MEN jeg skal kun have ET af hvert mærke ud så resultatet bliver sådan her:

panasonic
jbl
sony

Hvordan gør man det ?
Avatar billede bromer Nybegynder
05. april 2005 - 21:30 #1
select DISTINCT(feltnavn) FROM tabel
Avatar billede clausga Nybegynder
05. april 2005 - 21:34 #2
kan man få en lille forklaring ? :)
Avatar billede barklund Nybegynder
05. april 2005 - 21:36 #3
Manualen forklarer det meget godt - men hvis du skriver DISTINCT så kommer der kun en af hver - så simpelt er det.
Avatar billede bromer Nybegynder
05. april 2005 - 21:36 #4
Sagtens. distinct tager netop og "samler" data så de kun fremkommer een gang. Hvis du derfor har dine mærker i felter "marks" i en tabel kaldet "mytable" vil "select distinct(marks) as marks from mytable" give dig hvad du vil have.
Avatar billede clausga Nybegynder
06. april 2005 - 19:14 #5
hmm det virker ikke og det ved jeg nok godt selv hvorfor... i min tabel er titel ikke kun mærket men også modellen, den ser sådan her ud

panasonic tv
panasonic lcd
jbl subwoofer
sony kamera
sony dvd
jbl forstærker
panasonic dfd5g47

Hvad kan jeg så gører ???
Avatar billede barklund Nybegynder
06. april 2005 - 19:32 #6
Så du har et felt der indeholder "Sony DVD", "Sony Kamera" og så videre? Altså i alle tilfælde står brand-navnet forrest i feltet som første ord og er adskilt fra det næste ord af et mellemrum?
Avatar billede clausga Nybegynder
06. april 2005 - 19:56 #7
Ja lige præsis barklund :)
Avatar billede barklund Nybegynder
06. april 2005 - 20:04 #8
Så må det være:

SELECT DISTINCT LEFT(feltnavn, INSTR(" ", feltnavn)) FROM tabel

Tror jeg det må være :)
Avatar billede clausga Nybegynder
06. april 2005 - 20:15 #9
hmm hvad er der galt her

$crtv = mysql_query("SELECT DISTINCT LEFT(titel, INSTR(" ", titel)) FROM produkter");
while($row = mysql_fetch_array($crtv)) {
echo $row["titel"];
}
Avatar billede barklund Nybegynder
06. april 2005 - 20:16 #10
At du har quotes midt i din streng som afslutter strengen - det ved du vel, at man ikke må:

$crtv = mysql_query("SELECT DISTINCT LEFT(titel, INSTR(' ', titel)) FROM produkter");
while($row = mysql_fetch_array($crtv)) {
echo $row["titel"];
}
Avatar billede clausga Nybegynder
06. april 2005 - 20:24 #11
kopierede jo bare dit eksempel ind ;)

men nu får jeg ingen fejl men får heller ikke skrevet noget ud ?!
Avatar billede clausga Nybegynder
06. april 2005 - 20:46 #12
Hvad kan der være galt ???
Avatar billede barklund Nybegynder
06. april 2005 - 21:33 #13
Prøv lige:

$crtv = mysql_query("SELECT LEFT(titel, INSTR(' ', titel)) AS titel FROM produkter");
while($row = mysql_fetch_array($crtv)) {
  echo $row["titel"];
}
Avatar billede clausga Nybegynder
06. april 2005 - 21:38 #14
hjælper ikke noget :(
Avatar billede barklund Nybegynder
06. april 2005 - 21:40 #15
Intet output overhovedet?

Prøv lige:

$crtv = mysql_query("SELECT titel FROM produkter") or die(mysql_error());
while($row = mysql_fetch_array($crtv)) {
  echo $row["titel"];
}

--
Morten Barklund
Avatar billede clausga Nybegynder
06. april 2005 - 21:41 #16
ja så får jeg alt ud fra databasen
Avatar billede barklund Nybegynder
06. april 2005 - 21:43 #17
Så prøver vi os lidt frem, hvad med:

$crtv = mysql_query("SELECT INSTR(' ',titel) AS titel FROM produkter") or die(mysql_error());
while($row = mysql_fetch_array($crtv)) {
  echo $row["titel"];
}

Det skulle give en masse tal
Avatar billede clausga Nybegynder
06. april 2005 - 21:45 #18
Den giver en masse 0'er
Avatar billede barklund Nybegynder
06. april 2005 - 21:48 #19
Haha, det er jo omvendt :/

$crtv = mysql_query("SELECT DISTINCT LEFT(titel, INSTR(titel, ' ')) AS titel  FROM produkter") or die(mysql_error());
while($row = mysql_fetch_array($crtv)) {
    echo $row["titel"];
}

Prøv den :)

--
Morten Barklund
Avatar billede clausga Nybegynder
06. april 2005 - 21:50 #20
SÅ er der BONUS nu virker det, jeg siger mange mange tak smid et svar :) du kan da lige smide et svar i den anden også du fortjerner lidt point :)
Avatar billede barklund Nybegynder
06. april 2005 - 21:54 #21
Accepter du bare dig selv i det andet spørgsmål :)

--
Morten Barklund
Avatar billede detox Nybegynder
06. april 2005 - 21:58 #22
Hehe, ja man kan nemt snuble over INSTR og LOCATE ;O)
Avatar billede barklund Nybegynder
06. april 2005 - 22:00 #23
Det er jo det :)
Avatar billede barklund Nybegynder
06. april 2005 - 22:00 #24
Og tark for points :)
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