Avatar billede subit Nybegynder
22. januar 2006 - 06:28 Der er 13 kommentarer

Select * from table - spørgsmål

Hej allesammen

Jeg har disse 2 tabeller:

- Brugere
- status

I brugere står der f.eks:
id: 1
bruger: Peter
Pass: ******
Status: 4

og i Status er der f.eks:
id: 4
status: CoAdmin

Jeg bruger normalt denne kode til at få noget frem fra en table:
$foresp = mysql_query("SELECT * FROM brugere");
while($data = mysql_fetch_array($foresp)){
echo "$data[bruger]";
}

Men hvordan får jeg den til at hente navne på status, får hvis jeg bare udskriver $data[status] så står der jo bare "4" det tal som den er. Den skal hen til tabellen status og se hvad navnet på status'en er.

hjælp
Avatar billede Søren Bech Morsing Praktikant
22. januar 2006 - 08:48 #1
simple SQL:
SELECT brugere.*, status.status FROM brugere, status WHERE status.status = brugere.status

pas dog på da du har 2 felter der nu hedder status, kan løses med:

SELECT brugere.bruger, status.status FROM brugere, status WHERE status.status = brugere.status
- nu kan du dog kun bruge bruger (navn) og status (tekst) fra dine tabeller
Avatar billede nielle Nybegynder
22. januar 2006 - 09:17 #2
Med:

SELECT brugere.*, status.status FROM brugere, status WHERE status.status = brugere.status

- er der ingen speciel grund til at udtrække "status.status" - værdien er jo lig med brugere.status. Bortset fra det, så er en alternativ møde til at løse problemet med felter som heder det samme, at bruge alias:

SELECT brugere.*, status.status AS s_status FROM brugere, status WHERE status.status = brugere.status
Avatar billede nielle Nybegynder
22. januar 2006 - 09:21 #3
... bortset far det, så bør SQL'en snarer se sådan her ud:

SELECT brugere.bruger, status.status FROM brugere, status WHERE brugere.status = status.id
Avatar billede jakobdo Ekspert
22. januar 2006 - 09:48 #4
Eller en lidt mere uoverskuelig sql:

SELECT
  b.bruger,
  s.status
FROM
  brugere AS b
INNER JOIN
  status AS s
ON
  b.status = s.id
Avatar billede subit Nybegynder
22. januar 2006 - 10:02 #5
kan man få en forklaring med?
for mig ligner det bare der står status.status.brugere.status osv.

hvorfor den opstilling ?
Avatar billede jakobdo Ekspert
22. januar 2006 - 10:08 #6
Opsætningen er bare for at give bedre overblik.
Så bruger den inner join, som du kan læse om her:
http://www.w3schools.com/sql/sql_join.asp
Avatar billede subit Nybegynder
22. januar 2006 - 10:11 #7
Har fundet ud af det.
Vær venlige at lave svar jer der har hjulpet.
Avatar billede subit Nybegynder
22. januar 2006 - 10:12 #8
og tak jakobdo. det link er rigtig nyttigt
Avatar billede jakobdo Ekspert
22. januar 2006 - 10:13 #9
Ja, det link kan faktisk forklare rigtig mange ting!
Avatar billede nielle Nybegynder
22. januar 2006 - 10:16 #10
Nej tak til point på denne her, men ellers tak for tilbudet :^)
Avatar billede jakobdo Ekspert
22. januar 2006 - 10:18 #11
Nielle dit svar virkede jo, hvorfor så ikke et svar?
Avatar billede nielle Nybegynder
22. januar 2006 - 10:47 #12
Fordi at jeg kun tilrettede et *næsten* rigtigt svar. :^)
Avatar billede jakobdo Ekspert
22. januar 2006 - 10:49 #13
Ok! :o)
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