Avatar billede kren1000 Nybegynder
20. oktober 2007 - 17:57 Der er 3 kommentarer og
1 løsning

Random tal baseret på udtræk med flere værdier

Hejsa

Jeg er ved at skrive en funtion, der skal hente 3 random id'er ud, baseret på et andet udtræk.

$sql2 skal hente alle id'er med kategoriId fra forrige udtræk (der kan kan være fra 1 til mange). Ud fra dette skal de 3 random tal findes.

Jeg har prøvet at implode det array som udtrækket skal laves ud fra, for at få alle tallene inkluderet i udtrækket, men dette virker ikke helt efter hensigten.

$sql2 henter kun data ud fra det første produktKategoriSubId, og ikke ud fra flere.
print_r($arr) viser kun et resultalt. Eksempelvis -  Array ( [0] => 161 )  - 161 er det første tal i udtrækket fra $sql. En test viser dog, at udtrækket rent faktisk giver flere resultater.

Håber der er nogle som kan hjælpe.


function randKatPic(){

print "<table width='100%' border='0' cellspacing='0' cellpadding='0'><tr>";
//Finder underkategorier
$sql = "SELECT produktKategoriSubId FROM produktkategorisub WHERE produktKategoriId = ".$_GET['subkat'];
$result = mysql_query($sql);
$arr = mysql_fetch_array($result);
print_r($arr);
                           
                            //Finder produkter fra produktikat               
                            $string = implode(',',$arr);
                            $sql2 = "SELECT * FROM `produktikat` WHERE `kategoriId` IN (".implode(',',$arr).") ORDER BY RAND() LIMIT 3";
                            $result2 = mysql_query($sql2);

                            //Finder produktet og udskriver data
                            while($arr2 = mysql_fetch_array($result2)){                         
                            $sql3 = "SELECT * FROM produkt WHERE produktId = ".$arr2['produktId'];
                            //print $sql3;
                            $result3 = mysql_query($sql3);
                            $arr3 = mysql_fetch_array($result3);
                            print "<td class='randpic'>";
                            print "<a href='".$arr3['link']."' target='_blank'>";
                            print "<img src='../billeder/produkter/".$arr3['billede']."' width='125'  height='125' border='0' class='randKatPic'>";
                            print "</a></td>";
                            }                         
print"</tr></table>";
}
Avatar billede nielle Nybegynder
20. oktober 2007 - 18:16 #1
Sådan?

function randKatPic(){
    print "<table width='100%' border='0' cellspacing='0' cellpadding='0'><tr>";

    // Finder underkategorier
    $sql1 = "SELECT produktKategoriSubId FROM produktkategorisub WHERE produktKategoriId = " . $_GET['subkat'];
    $result1 = mysql_query($sql1);

    $inArr = array()
    while ($row1 = mysql_fetch_assoc($result1)) {
        $inArr[] = $row['produktKategoriSubId'];
    }
    $in = implode(',', $inArr);

    //Finder produkter fra produktikat               
    $sql2 = "SELECT * FROM produktikat WHERE kategoriId IN ($in) ORDER BY RAND() LIMIT 3";
    $result2 = mysql_query($sql2);

    //Finder produktet og udskriver data
    while ($row2 = mysql_fetch_assoc($result2)) {
        $sql3 = "SELECT * FROM produkt WHERE produktId = " . $row2['produktId'];
        //print $sql3;
        $result3 = mysql_query($sql3);
        $row3 = mysql_fetch_assoc($result3);

        print "<td class='randpic'>";
        print "<a href='".$row3['link']."' target='_blank'>";
        print "<img src='../billeder/produkter/" . $row3['billede'] . "' width='125'  height='125' border='0' class='randKatPic'>";
        print "</a></td>";
    }

    print"</tr></table>";
}
Avatar billede nielle Nybegynder
20. oktober 2007 - 18:17 #2
Ups:

$inArr[] = $row1['produktKategoriSubId'];
Avatar billede kren1000 Nybegynder
22. oktober 2007 - 08:15 #3
Hejsa, det var lige hvad der skulle til, nu funker det perfekt! Jeg takker mange gange, læg gerne et svar til points:).
Avatar billede nielle Nybegynder
22. oktober 2007 - 08:46 #4
Svar :^)
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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