Avatar billede kren1000 Nybegynder
26. maj 2007 - 12:42 Der er 12 kommentarer og
2 løsninger

flere random tal

Hej eksperter

Hvordan finder man eksempelvis 3 random tal, hvis man har et array med X antal tal?
Avatar billede duuink Nybegynder
26. maj 2007 - 15:33 #1
Man benytter fucktionen rand() som nøgle når du laver udtrækket fra dit array
Avatar billede duuink Nybegynder
26. maj 2007 - 15:41 #2
//$talraekke er dit array med tal
$x=0;
$randkey = array();
while($x<3){
    $randkey[] = $talraekke[rand(0,count($talraekke))];
    $x++;
}

tror nok det virker , men har ikke testet det
Avatar billede jakobdo Ekspert
26. maj 2007 - 17:23 #3
Man kunne også bruge shuffle()
og så trække de første 3 tal ud af arrayet.
Avatar billede duuink Nybegynder
26. maj 2007 - 17:42 #4
det er også en mulighed, men så ændrer du jo også i array'et
Avatar billede jakobdo Ekspert
26. maj 2007 - 17:58 #5
Ja, men det har ingen jo sagt man ikke måtte! :o)
Avatar billede duuink Nybegynder
26. maj 2007 - 18:07 #6
næ xD
Avatar billede kren1000 Nybegynder
27. maj 2007 - 09:15 #7
Ok, nu har jeg fundet ud af det, takker begge to:) Svar så er der points.
Avatar billede jakobdo Ekspert
27. maj 2007 - 09:31 #8
Svar!
PS: Du må gerne vise din løsning.
Avatar billede duuink Nybegynder
27. maj 2007 - 19:55 #9
xD
Avatar billede morhan Novice
28. maj 2007 - 01:07 #10
Der er faktisk ret stor forskel på de to løsninger. Ved den første kan samme tal udtrækkes flere gange, det kan det ikke i den anden
Avatar billede jakobdo Ekspert
28. maj 2007 - 09:45 #11
Takker for point.
Avatar billede kren1000 Nybegynder
28. maj 2007 - 09:45 #12
function randKatPic(){

    if(!isset($_GET['subkat'])){
        if($_GET['hovedkat'] == 14){
        $subkat = 54;
        }
        else if($_GET['hovedkat'] == 15){
        $subkat = 56;
        }
        else if($_GET['hovedkat'] == 16){
        $subkat = 55;
        }
    }
    else if(isset($_GET['subkat'])){
        $subkat = $_GET['subkat'];
    }
   


print "<table width='100%' border='1' cellspacing='0' cellpadding='0'>
<tr>";

$sql = "SELECT * FROM produktkategorisub WHERE produktKategoriId = ".$_GET['subkat']."";
print $sql;
$result = mysql_query($sql);
$arr = mysql_fetch_array($result);
    //while($arr = mysql_fetch_array($result)){
    $sql2 = "SELECT * FROM produktikat WHERE kategoriId = ".$arr['produktKategoriSubId']." ORDER BY RAND() LIMIT 3";
    $result2 = mysql_query($sql2);
   
    //}
    while ($arr2 = mysql_fetch_array($result2)){
    print "<br>";
    print $arr2['produktId']."<br>";
    }
   
print"
<td>billede1</td>
<td>billede2</td>
<td>billede3</td>
</tr>
</table>";
}
Avatar billede kren1000 Nybegynder
28. maj 2007 - 09:46 #13
Den skal så lige sættes til at vise billeder:)
Avatar billede jakobdo Ekspert
28. maj 2007 - 10:05 #14
Måske din funktion kunne laves sådan her:

function randKatPic()
{
    if(is_numeric($_GET['subkat']))
    {
        $subkat = intval($_GET['subkat']);
    }
    else
    {
        switch($_GET['hovedkat'])
        {
            case 14:
                $subkat = 54;
                break;
            case 15:
                $subkat = 56;
                break;
            case 16:
                $subkat = 55;
                break;
            default:
                //ERROR!!!
                break;
        }
    }

  echo '<table width="100%" border="1" cellspacing="0" cellpadding="0"><tr>';

    $sql = "SELECT * FROM produktkategorisub WHERE produktKategoriId = ".$subkat."";
    echo $sql;
    $result = mysql_query($sql);
    $arr = mysql_fetch_array($result);
    $sql2 = "SELECT * FROM produktikat WHERE kategoriId = ".$arr['produktKategoriSubId']." ORDER BY RAND() LIMIT 3";
    $result2 = mysql_query($sql2);
 
    while ($arr2 = mysql_fetch_array($result2))
    {
        echo '<br>' . $arr2['produktId'] . '<br>';
    }
 
    echo '<td>billede1</td><td>billede2</td><td>billede3</td></tr></table>';
}
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