Avatar billede clausga Nybegynder
15. februar 2006 - 15:58 Der er 15 kommentarer og
1 løsning

Udvælg fra database med flere ID

Jeg har et flet som hedder XTRAPRO som fx indeholder:

248,21,85

altså 3 ID numre på felter i tabellen produkter

nu vil jeg så have sådan at den skal udskrive de 3 produkter fra databasen, men hvordan jeg jeg det ?
Avatar billede horsmark Nybegynder
15. februar 2006 - 16:01 #1
Er du igang med at kode en løsning - hvis ja bør du have en referencetabel en->mange hvor du lister et givent produkts xtraprodukter istedet...
Avatar billede clausga Nybegynder
15. februar 2006 - 16:03 #2
altså det jeg bare vil vide at hvordan: $q = mysql_query("SELECT * FROM produkter WHERE id = '$id'");
while($row = mysql_fetch_array($q)) {

man så gør det når der er flere $id der skal vælges ud ??
Avatar billede michael_stim Ekspert
15. februar 2006 - 16:06 #3
$q = mysql_query("SELECT * FROM produkter");
while($row = mysql_fetch_array($q)) {
echo $row['ID'];
}
Avatar billede clausga Nybegynder
15. februar 2006 - 16:09 #4
det hjælper da ikke noget ? jeg skal kun have info ud på fx. 3 produkter eller måske 5 ?
Avatar billede clausga Nybegynder
15. februar 2006 - 16:11 #5
altså sådan her: men sådan kan man jo ikke gøre det

$q = mysql_query("SELECT * FROM produkter WHERE id = '248,21,85'");
Avatar billede horsmark Nybegynder
15. februar 2006 - 16:12 #6
while($row = mysql_fetch_array($q)) {
print $row['ID'];
$tmpIds = explode(",",$row['XTRAPRO']);
if ( is_array($tmpIds) ) {
  print "Ekstra fundet...<br>";
  foreach($tmpIds as $extraId){
    print $extraId."<br>";
  }
}
}
Avatar billede horsmark Nybegynder
15. februar 2006 - 16:13 #7
åhh...
"SELECT * FROM produkter WHERE id IN (12,55,88)")
Avatar billede michael_stim Ekspert
15. februar 2006 - 16:14 #8
OK. Så skal du bruge IN(248,21,...osv)
Avatar billede clausga Nybegynder
15. februar 2006 - 16:51 #9
$q = mysql_query("SELECT * FROM produkter WHERE id IN ('$xtrapro')")
while($row = mysql_fetch_array($q)) {  }

man kan ikke gøre sådan ?
Avatar billede clausga Nybegynder
15. februar 2006 - 16:53 #10
$xtrapro = 21,54,284
Avatar billede horsmark Nybegynder
15. februar 2006 - 16:59 #11
hvorfor ikke lave en ny tabel

products_bundle
id, product_id, bundle_product_id

og så lave en outer join ? Så kan du lave hele molevitten i et select statement ?
Avatar billede michael_stim Ekspert
15. februar 2006 - 16:59 #12
$q = mysql_query("SELECT * FROM produkter WHERE id IN ($xtrapro)");
Avatar billede michael_stim Ekspert
15. februar 2006 - 17:02 #13
$q = mysql_query("SELECT * FROM produkter WHERE id IN (".$xtrapro.")");
eller sådan. Hvis $xtrapro altså er lig med 21,54,284.
Avatar billede clausga Nybegynder
05. april 2006 - 10:41 #14
tak, smid svar :)
Avatar billede michael_stim Ekspert
05. april 2006 - 10:49 #15
fino
Avatar billede michael_stim Ekspert
20. maj 2006 - 10:08 #16
lukketid?
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