Avatar billede donv Nybegynder
13. november 2007 - 14:17 Der er 1 kommentar

Problem med random

Hej derude

Jeg har et website med en produktdatabase, hvor produkterne bliver vist random i underkategorier.

Der er 9 billeder på hver side og en underkategori indeholder flere sider.

Problem:
Når en bruger besøger en underkategori og går fra fx side 1 til 2 bliver produkter fra side 1 også vist på side 2 på grund af randomfunktionen.

Det jeg ønsker er:

At produkterne bliver vist random første gang at brugeren besøger en underkategori. Og at de så bliver liggende på deres pladser indtil næste gang brugeren besøger websitet eller en anden bruger besøger en websitet.
På denne måde kan en bruger gå fra side 1 til fx 2 og fra 2 til 1 uden at produkterne skifter plads under det aktuelle besøg.

Jeg har fundet frem til at det er noget med at man skal gemme produkternes id i en session og tjekke op imod databasen på næste side.

Men jeg har ikke styr på sessions og hvordan man tjekker det imod databasen.

Min kode ser sådan ud:

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[] = $row1['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>";
}

Håber at der er nogen som kan hjælpe

MVH

Mikkel
Avatar billede jakobdo Ekspert
13. november 2007 - 16:02 #1
Du kunne tage dine random værdier og gemme i en session.
Så bruger du disse værdier indtil session udløber, hvilket må antages er at brugeren besøger siden igen.
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