Beste PHP-hulpers,

Graag wil ik een site maken met een aantal links per provincie. In de database geef ik bij de link met een getal (1=Groningen,12=Limburg enz.) aan welke provincie.

Met de volgende code maak ik twaalf provincies in PHP:

$arr = array('Groningen','Friesland','Drenthe','Overijssel','Flevoland','Gelderland','Utrecht','Noord-Holland','Zuid-Holland','Zeeland','Noord-Brabant','Limburg');
foreach ($arr as &$value)
{
    echo $value;
}


Hoe kan ik nu met het uitvoeren van één MySQL-query hier 5 links per provincie tonen?
iets van $query = "SELECT links FROM provincies WHERE provincie="jou provincie" limit = 0, 5; als ik jou goed begrijp?
Denk dat ik het begrijp, je wil van 12 provincies 5 links laten zien.
Dus je hebt een DB met daarin per provincie een x aantal links en dan random links laten zien.
Misschien handig om je db structuur te laten zien.
Dank voor jullie snelle reactie. Hieonder de db-structuur. Inderdaad Jasper, graag wil ik per provincie 5 links laten zien.


CREATE TABLE IF NOT EXISTS `links` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(60) NOT NULL,
  `url` varchar(200) NOT NULL,
  `province` int(11) NOT NULL,
  `visible` int(1) NOT NULL DEFAULT '1',
  `tip` int(1) NOT NULL DEFAULT '0',
  UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=101 ;


Ik zou natuurlijk 12 keer een MySQL-query kunnen uitvoeren, maar dat lijkt me niet netjes en niet snel.
Je zou in dit geval de benodigde data moeten halen uit de DB, dus name, url, province, tip.
En vervolgens met php er maar per provincie 5 laten zien.
de nieuwste 5, of echt random?
Het was de bedoeling random, maar als dat niet kan mag het ook op alfabet of de nieuwste vijf.
Volgens mij zo:

nieuwste:
moet je een date functie bij je mysql toevoegen
$query = "SELECT links FROM provincies WHERE provincie="jou provincie" ORDER by date limit = 0, 5;

alfabet:
$query = "SELECT links FROM provincies WHERE provincie="jou provincie" ORDER by name limit = 0, 5;

random weet ik zo niet zal even zoeken,
$random_row = mysql_fetch_row(mysql_query("select * from YOUR_TABLE order by rand() limit 1"));

-edit-
gerhard, de eerste die jij noemt kan niet, er is geen date veld. Dat zal je met het id moeten doen en dan het hoogste id is als laatste toegevoegd.
haha jasper weer wat eerder, ik had ook net iets gevonden:
$sql = "SELECT * FROM tabelnaam ORDER BY RAND() LIMIT 0,1";
$res = mysql_query($sql);

// kijk of er wel iets gevonden is
if (mysql_num_rows($res) >= 1)
echo mysql_result($res, 0);

moet je denk ik nog even die limits op 5 zetten
enigste is dat je dan 5 compleet willekeurige links krijgt en hij wil er volgens mij 5 per provincie.

Reageren