---
title: "Random"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/183455-random"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "emton"
published: "2010-05-11T09:56:31.000Z"
updated: "2010-05-11T14:02:04.000Z"
replies: 4
views: 339
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/183455-random"
---

# Random

## #1 — emton, 2010-05-11T09:56Z

Jag ska få till att ha en rullande ruta som hämtar ut en stuga i taget ur databasen och visar några raders information. Själva rullandet av rutan sker med javascript men hur får jag slumpat in en stuga i taget här.
Har knåpat lite men är inget vidare på detta så om någon känner sig manad att hjälpa vore det jättebra. :)
Här är koden för hur det ser ut och vad som ska in.

```php
<div id="random-cabins">

	<h2></h2>

	<ul>
		<?php foreach (Cabins::getRandom() as $cabin) { ?>	
			<li>
				<h3>
					<a href="stuga.php?cabins_id=<?php echo $cabin['cabins_id']; ?>">
						<img src="img/cabins/<?php echo $cabin['cabins_id']; ?>.jpg" alt=""/> 
						<?php echo htmlspecialchars($cabin['title']); ?>
					</a>
				</h3>

				<dl>
					<dt>Antal bäddar</dt>
					<dd><?php# echo $cabin['beds']; ?></dd>
					<dt>Boendeyta</dt>
					<dd><?php# echo $cabin['sqm']; ?> kvm</dd>
					<dt>Antal rum</dt>
					<dd><?php# echo $cabin['rooms']; ?></dd>
				</dl>
			</li>
		<?php } ?>	
	</ul>

</div>
```

Denna koden ligger i cabins och ska hämta ut data ur databasen. 

```php
public static function getRandom () {

		$sql = "SELECT * FROM cabins ORDER BY RAND()LIMIT 6";
			$sql_result = mysql_query($sql) or die ("Query error!");

			while ($row = mysql_fetch_array($sql_result)){
				return array(
					'cabins_id'				=> $row['cabin_id'],
					'title'					=> $row["title"],
					'beds'					=> $row['beds'],
					'sqm'					=> $row['sqm'],
					'rooms'					=> $row['rooms']
				);
				
			}
		}
```

Vet inte om jag är helt ute och cyklar eller vad jag gör för fel. Som det är nu så kör den bara ut en siffra eller en bokstav för varje stuga och samma siffra eller bokstav i varje del, altså blir det siffra 1 så är det 1 rum, 1 kvm osv.

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

## #2 — The_Hulk, 2010-05-11T11:12Z

i din while-loop så har du return vilket avbryter loopen.
Du får deklarera en variabel innan while-loopen och tilldela den värdena.

```php
public static function getRandom () {

        $sql = "SELECT * FROM cabins ORDER BY RAND()LIMIT 6";
            $sql_result = mysql_query($sql) or die ("Query error!");
            $ret = array();

            while ($row = mysql_fetch_array($sql_result)){
                $ret[] = array(
                    'cabins_id'                => $row['cabin_id'],
                    'title'                    => $row["title"],
                    'beds'                    => $row['beds'],
                    'sqm'                    => $row['sqm'],
                    'rooms'                    => $row['rooms']
                );
                
            }
        }
```

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

## #3 — emton, 2010-05-11T11:19Z

Tack för hjälp, men tyvärr så funkar det inte. Fick felmeddelandet "Warning: Invalid argument supplied for foreach() ".

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

## #4 — The_Hulk, 2010-05-11T13:45Z

du måste även returnera $ret efter din while-loop.

```php
public static function getRandom () {

        $sql = "SELECT * FROM cabins ORDER BY RAND()LIMIT 6";
            $sql_result = mysql_query($sql) or die ("Query error!");
            $ret = array();

            while ($row = mysql_fetch_array($sql_result)){
                $ret[] = array(
                    'cabins_id'                => $row['cabin_id'],
                    'title'                    => $row["title"],
                    'beds'                    => $row['beds'],
                    'sqm'                    => $row['sqm'],
                    'rooms'                    => $row['rooms']
                );
                
            }
            return $ret;
        }
```

Blev lurad av din indentering, trodde inte du visade hela funktionen.

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

## #5 — emton, 2010-05-11T14:02Z

Tack, du är veckans pärla!!

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

---

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