---
title: "Random"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/15109-random"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "mikaeled"
published: "2001-01-06T20:47:00.000Z"
updated: "2001-01-08T10:08:00.000Z"
replies: 3
views: 264
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/15109-random"
---

# Random

## #1 — mikaeled, 2001-01-06T20:47Z

Hej,

Jag har ett script som använder sig av mysql-databas. Jag skulle vilja veta koden för hur man gör så att scriptet tar en random rad ut databasen som har värde som är mer än 0 i kolumnenen ID

Permalänk: https://www.webforum.nu/p/15109

## #2 — Gaski, 2001-01-07T12:37Z

Först av allt tar du reda på det största värdet på ID, kan göras så här:

```
SELECT ID FROM data DESC
```

Sparar det första svaret i en variabel, t.ex. $lastID

Sedan använder du följande kod för att slumpa fram ett nytt ID:

```
$numbers = range(1,$lastID);
shuffle($numbers);
```

$numbers är en array med omkastade värden, ta ut det första som är ett nummer ifrån 1 till det högsta talet i kolumnen ID ifrån din databas.

```
SELECT * FROM data WHERE ID='$numbers[0]'
```

Permalänk: https://www.webforum.nu/p/316523

## #3 — Choice, 2001-01-08T04:34Z

gaski, humma.. hur blire om id i databasen inte är 1,2,3,4,5 osv osv utan tex 1, 3, 7, 9 osv?
Så här hade jag gjort det, kanske funkar bättre på nåt annat sätt dock.

```
$db_connection = mysql_pconnect("127.0.0.1", "nobody","");
$get = mysql_db_query("somewhere","SELECT * FROM something",$db_connection);
$i=0;
$numrow = mysql_num_rows($get);
while($row = mysql_fetch_array($get)) {
$row_arr[$i][0] = $row[0];
$i++;
}
$rnd_nr = rand(1,$i);
echo $row_arr[$rnd_nr][0];
```

Permalänk: https://www.webforum.nu/p/316524

## #4 — nanne, 2001-01-08T10:08Z

Detta funkar kanske? Har inte provat
(från mysql manualen)

> RAND() 
> RAND(N) 
> Returns a random floating-point value in the range 0 to 1.0. If an integer argument N is specified, it is used as the seed value: 
> mysql\> select RAND();
>         \-\> 0.5925
> mysql\> select RAND(20);
>         \-\> 0.1811
> mysql\> select RAND(20);
>         \-\> 0.1811
> mysql\> select RAND();
>         \-\> 0.2079
> mysql\> select RAND();
>         \-\> 0.7888
>
> You can't use a column with RAND() values in an ORDER BY clause, because ORDER BY would evaluate the column multiple times. In MySQL Version 3.23, you can, however, do: SELECT \* FROM table_name ORDER BY RAND() This is useful to get a random sample of a set SELECT \* FROM table1,table2 WHERE a=b AND c\<d ORDER BY RAND() LIMIT 1000. Note that a RAND() in a WHERE clause will be re-evaluated every time the WHERE is executed.

Permalänk: https://www.webforum.nu/p/316525

---

Tråden på webben: https://www.webforum.nu/amne/php/15109-random
