Avatar billede hanshenp Nybegynder
19. juli 2003 - 04:55 Der er 9 kommentarer og
1 løsning

2 selects fra 1 tabel

$idTilDirQ = ("SELECT dir FROM pics WHERE id='$dir'");
$idTilDirR = mysql_fetch_array($idTilDirQ);
$dirTilIdQ = mysql_query("SELECT id FROM pics WHERE id='$idTilDirR[dir]'");
$dirTilIdR = mysql_fetch_array($dirTilIdQ);
$redir = $dirTilIdR['id'];
header("location:billede_db.php?dir=$redir");

Sådan ser min nuværende kode ud, men tænkte at det må kunne gøres mere smart
Avatar billede arne_v Ekspert
19. juli 2003 - 10:22 #1
Nu kender jeg ikke PHP men SQL mæssigt kan du sagtens hente flere felter
af gangen:

SELECT felt1,felt2,felt3 FROM tabel WHERE felt4='xxxx'

I PHP er det vel noget a la:

$q = mysql_query("SELECT felt1,felt2,felt3 FROM tabel WHERE felt4='xxxx'");
$rs = mysql_fetch_array($q);
$felt1 = $rs['felt1'];
$felt2 = $rs['felt2'];
$felt3 = $rs['felt3'];
Avatar billede hanshenp Nybegynder
19. juli 2003 - 18:04 #2
ye, så langt er jeg også med... det jeg søger, er noget a la:

SELECT id FROM pics WHERE id=(SELECT dir FROM pics WHERE id='$id')

den eneste værdig jeg kender, er $id'en
Avatar billede arne_v Ekspert
19. juli 2003 - 18:08 #3
I MS SQLServer (i modsætning til MySQL), så bør:

SELECT id FROM pics WHERE id IN (SELECT dir FROM pics WHERE id='$id')

virke !
Avatar billede arne_v Ekspert
19. juli 2003 - 18:09 #4
Hm.

Men hvad er det egentligt du vil ?

(jeg synes ikke at den SQL giver mening)
Avatar billede hanshenp Nybegynder
19. juli 2003 - 18:22 #5
jeg har lavet et forum system, hvor en tråd har id=x og dir=0
en undertråd til denne vil så have id=y og dir=x

Begge er indsat i samme tabel.

altså er det, som binder de to rækker sammen id/dir...

problemet er bare at jeg kun er i besiddelse af Y værdien, og derfor åbenbart skal lave 2 forspørgsler for at opnå det rette resultat...
Avatar billede hanshenp Nybegynder
19. juli 2003 - 18:24 #6
Doh jeg har valgt det forkete sted at poste denne... undskylder meget, skulle have været i mysql...
Avatar billede arne_v Ekspert
19. juli 2003 - 18:29 #7
OK.

MySQL har ikke IN men det kan gøre spå anden vis.
Avatar billede arne_v Ekspert
19. juli 2003 - 18:30 #8
I MySQL må det vær enoget a la:

SELECT p1.id FROM pics p1, pics p2 WHERE p1.id = p2.dir AND p2.id='$id'
Avatar billede hanshenp Nybegynder
19. juli 2003 - 18:34 #9
Doh jeg kan jo nøjes med den første forespørgsel

SELECT dir FROM pics WHERE id='$id'

Eftersom den rækkes dir = den anden rækkes id... har jeg jo allerede efter 1. forespørgsel, den rette id =)
Avatar billede arne_v Ekspert
19. juli 2003 - 18:46 #10
He he.

Somme tider er det nemt !
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
Computerworld tilbyder specialiserede kurser i database-management

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