Avatar billede clausga Nybegynder
13. december 2006 - 14:17 Der er 10 kommentarer

hente id fra en tabel og udtræk fra en anden

Hej har en tabel der hedder kunde

select * from kunde where status = afsluttet

$row['ordrenummer'];

alle de ordrenummer den finder skal så bruges til at udtrække fra en anden database som hedder ordre

select * from ordre where ordrenummer = $ordrenummer

men hvordan laver jeg det ?
Avatar billede lasserasch Juniormester
13. december 2006 - 14:38 #1
Jeg er ikke hård til PHP, men kan fortælle hvordan det gøres i ASP.

Jeg går her i dette eks. ud fra at du vil bruge et felt det hedder "kundenr" til at lave udtræk nr. 2.

først

rs.open "select * from kunde where status = 'afsluttet'", strsql

do while not rs.eof

rs2.open "select * from ordre where ordrenummer = " & rs("kundenr"), strsql

ordrenr = rs2("ordrenr")

' Udskriver resultat herunder :
response.write "## Kunde nr. : " & rs("kundenr") & " - Ordre nr. : " & rs2("ordrenr") & ". ##"
rs.movenext
loop


Syntaks er jo anderledes i PHP, men håber du forstår ideen. Den er jo den samme i både PHP og ASP.

Man kører en løkke og bruger så oplysningerne fra hver løkkerunde til at lave en ny forespørgelse.

/Lasse
Avatar billede coderdk Praktikant
13. december 2006 - 14:56 #2
SELECT o.* FROM ordre AS o INNER JOIN kunde AS k ON o.ordrenummer = k.ordrenummer WHERE k.status = 'afsluttet'

Den skulle hive det hele ud i ét statement :)
Avatar billede coderdk Praktikant
13. december 2006 - 14:58 #3
Måske lige med en passende ORDER BY...
Avatar billede clausga Nybegynder
13. december 2006 - 14:58 #4
hov fik vist ikke forklaret mig godt nok, fra tabellen ordre skal jeg bruge SUM(pris) ... altså jeg skal have lagt alle felterne "pris" sammen...
Avatar billede sw_red_6 Nybegynder
13. december 2006 - 15:00 #5
hvis du har mulighed for det kan du prøve med subqueries.
noget i retning af det her:
SELECT SUM(pris) FROM ordre WHERE ordrenummer in (SELECT ordrenummer FROM kunde WHERE status = 'afsluttet')
Avatar billede coderdk Praktikant
13. december 2006 - 15:04 #6
Eller:

SELECT SUM(o.pris) AS samlet FROM ordre AS o INNER JOIN kunde AS k ON o.ordrenummer = k.ordrenummer WHERE k.status = 'afsluttet'
Avatar billede clausga Nybegynder
13. december 2006 - 15:14 #7
ser ud til det virker, mangler lige at få flettet det her ind:

WHERE SUBSTRING(unikkode, 3, 4) = '$fors' && status = 'afsluttet'

status har du med kan jeg se, men det er WHERE SUBSTRING(unikkode, 3, 4) = '$fors' der mangler i slutningen og det er også fra kunde databasen?
Avatar billede coderdk Praktikant
13. december 2006 - 15:19 #8
Sådan der:

$sql = "SELECT SUM(o.pris) AS samlet FROM ordre AS o INNER JOIN kunde AS k ON o.ordrenummer = k.ordrenummer WHERE k.status = 'afsluttet' AND SUBSTRING(k.unikkode,3,4) = '$fors'";

? :)
Avatar billede clausga Nybegynder
13. december 2006 - 16:00 #9
smid svar :D
Avatar billede coderdk Praktikant
13. december 2006 - 16:02 #10
Ok :)
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