Repeat sql output tot een bepaalde waarde

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Rick Secret

Rick Secret

12/05/2011 22:35:55
Quote Anchor link
Hallo,

Echt een beginnersvraag vond ik het niet dus ik post 'm hier maar :)

Ik heb een hele simpele query die alle tags op random volgorde uit een database haalt. Echter zou ik willen dat de tags worden herhaald tot een bepaalde hoeveelheid.

Als er in de database dus een tag a, een tag b en een tag c staat zou ik graag willen dat de output iets wordt van b, c, a, c, a, b, c, b etc. Repeat van random sort output dus.

Huidige code gewoon simpel:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
$getdata = "SELECT * FROM `tags` order by rand()";
$getdatasql = mysql_query( $getdata );
while( $data = mysql_fetch_assoc( $getdatasql ) )
{
        echo $data['tag'];
    echo " • ";
}


Bij voorbaat dank voor de hulp!
Gewijzigd op 12/05/2011 22:37:58 door Rick Secret
 
PHP hulp

PHP hulp

20/04/2024 13:55:09
 
Wouter J

Wouter J

12/05/2011 22:43:35
Quote Anchor link
Wat je zou kunnen doen is gewoon de tags eruit halen. Die in een array zetten en die door elkaar halen met shuffle deze code echoën en dan weer herhalen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
// Vars declareren
$tags = array();
$lijstje = '';
$sQuery = "SELECT tag FROM tags";
//Gebruik geen backtricks en selecteer wat je wilt in de query
$result = mysql_query($sQuery);
while($row = mysql_fetch_assoc($result))
{
//Gegevens ophalen
  $tags[] = $row['tag'];
}

for($i=0;$i < 10; $i++)
{
// Code 10 keer uitvoeren
  shuffle($tags); // $tags door elkaar halen
  foreach($tags as $tag)
  {
// Voor elke tag tag in $lijstje
    $lijstje .= $tag.',';
  }
}

echo substr($lijstje, 0, -1); // Laatste komma weghalen
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.