04. august 2003 - 23:22
Der er
31 kommentarer og 1 løsning
kald med where
Jeg har følgende kald til en database : $sql = "SELECT * FROM indsaet_post WHERE id = '$row[id]'"; det der gør det problematisk, er at $row[id] kan indeholde flere værdier. Normalt har man kun en værdi stående efter WHERE. Hvordan gør man det ???
Annonceindlæg tema
04. august 2003 - 23:23
#1
tjaah, hvad kan $row[id] da indeholde?
04. august 2003 - 23:28
#2
den indeholder værdierne for id
04. august 2003 - 23:32
#3
Hvordan kan det fx se ud ?
04. august 2003 - 23:36
#4
lad os nu tage et eks. og sige at jeg vil søge WHERE id=$row[0]=20 og id=$row[1]=70, hvad skriver man så
04. august 2003 - 23:39
#5
kan du bruge IN på en eller anden måde ?: WHERE id IN ('1','2','3','4','5','6')
04. august 2003 - 23:40
#6
id bliver først kaldet fra en anden tabel : $sql = "SELECT id FROM tilmi WHERE userid = '$userid'"; $query = mysql_query($sql) or die(mysql_error() . '<br>' . $sql); while ($row = mysql_fetch_array($query)) { echo $row[id]; } og der kan således være flere forekomster.. Bagefter vil jeg så finde de poster i en anden tabel der har de netop kaldte id værdier ..
04. august 2003 - 23:54
#7
$sql = "SELECT id FROM tilmi WHERE userid = '$userid'"; $query = mysql_query($sql) or die(mysql_error() . '<br>' . $sql); $list = array(): while ($row = mysql_fetch_array($query)) { $list[]=$row[id]; } $sql = "select ..... where id in (". join(",",$list) .")" ...osv
04. august 2003 - 23:58
#8
prøver lige om jeg kan få det til at fungere
04. august 2003 - 23:59
#9
....men reelt har du nok brug for en join select * from indsaet_post,tilmi where tilmi.id=indsaet_post.id and tilmi.userid='$userid'
05. august 2003 - 00:07
#10
har nu skrevet følgende : $sql = "SELECT id FROM tilmi WHERE userid = '$userid'"; $query = mysql_query($sql) or die(mysql_error() . '<br>' . $sql); $list = array(); while ($row = mysql_fetch_array($query)) { $list[]=$row[id]; } $sql = "select * FROM indsaet_post where id in (". join(",",$list) .")"; $query = mysql_query($sql) or die(mysql_error() . '<br>' . $sql); $row = mysql_fetch_array($query); while ($row = mysql_fetch_array($query)) { echo "$row[kategori]"; } exit; men den udskriver ikke noget ???
05. august 2003 - 00:09
#11
Prøv at udskrive dine sqlsætninger og se hvad der står i dem.
05. august 2003 - 00:14
#12
har udskrevet $sql = "select * FROM indsaet_post where id in (". join(",",$list) .")"; echo "$sql"; og den skriver 75 som er værdien af id
05. august 2003 - 00:16
#13
eller rettere, den skriver select * FROM indsaet_post where id in (75)
05. august 2003 - 00:20
#14
og ved den første sql skriver den : SELECT id FROM tilmi WHERE userid = 'michael'
05. august 2003 - 00:20
#15
Er der så et sted hvor id=75 ?
05. august 2003 - 00:21
#16
så id og userid er rigtige nok.. men den skriver bare ikke posten fra indsaet_post ud ??
05. august 2003 - 00:21
#17
ja der er et sted hvor id =75
05. august 2003 - 00:25
#18
Du springer jo også en række over, når du kigger i indsaet_post ;))
05. august 2003 - 00:26
#19
hvordan det ??
05. august 2003 - 00:26
#20
$row = mysql_fetch_array($query);
05. august 2003 - 00:28
#21
er ikke lige helt med..
05. august 2003 - 00:30
#22
erik kan du ikke præcisere det ??
05. august 2003 - 00:31
#23
Det kan ikke præciseres mere end det allerede er gjort. Men overvej den join. Det er den rigtige måde at gøre det på.
05. august 2003 - 00:32
#24
forstår ikke hvad du mener med at jeg springer en række over
05. august 2003 - 00:42
#25
når jeg bruger den join skriver den : Unknown table 'tilmi' in where clause select * FROM indsaet_post where tilmi.id=indsaet_post.id and tilmi.userid='michael'
05. august 2003 - 00:43
#26
er du stået af erik ..
05. august 2003 - 00:51
#27
kunne du ikke have sagt at jeg bare skulle slette $row = mysql_fetch_array($query); :)
05. august 2003 - 01:00
#28
læg et svar erik og du får pointsne. det er også fint at man ikke får det hele serveret :)
05. august 2003 - 08:23
#29
Nu skal du skrive join-sætningen som jeg skriver den. Jeg behøver ikke points.
05. august 2003 - 10:08
#30
det virker som det er nu, så vel ikke nødvendigt med en join ?
05. august 2003 - 10:18
#31
Som udgangspunkt er det bedst at lade databasen gøre arbejdet, og det gør den med en join.
22. december 2004 - 10:26
#32
okay
Computerworld tilbyder specialiserede kurser i database-management