Links tonen per provincie
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:
Code (php)
1
2
3
4
5
2
3
4
5
$arr = array('Groningen','Friesland','Drenthe','Overijssel','Flevoland','Gelderland','Utrecht','Noord-Holland','Zuid-Holland','Zeeland','Noord-Brabant','Limburg');
foreach ($arr as &$value)
{
echo $value;
}
foreach ($arr as &$value)
{
echo $value;
}
Hoe kan ik nu met het uitvoeren van één MySQL-query hier 5 links per provincie tonen?
Gewijzigd op 16/11/2010 14:12:57 door Gerben J
iets van $query = "SELECT links FROM provincies WHERE provincie="jou provincie" limit = 0, 5; als ik jou goed begrijp?
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.
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
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 ;
`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.
Gewijzigd op 16/11/2010 14:27:27 door Gerben J
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.
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,
-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.
Gewijzigd op 16/11/2010 14:55:02 door jasper hoi
$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
Gewijzigd op 16/11/2010 14:56:39 door gerhard l
Gewijzigd op 16/11/2010 15:06:55 door jasper hoi
Inderdaad Jasper, maar dat zal wel niet in één query kunnen. Helaas.
Gerben J op 16/11/2010 21:05:33:
Inderdaad Jasper, maar dat zal wel niet in één query kunnen. Helaas.
Inderdaad, dit kan niet simpel in één query.
En waarom zal dat volgens de heren niet kunnen?
Noppes Homeland op 16/11/2010 21:18:26:
En waarom zal dat volgens de heren niet kunnen?
Ga jij het maar eens proberen. En anders moet je je kop houden, jij onderbouwd je stellingen haast nooit.
Of je moet groeperen (en dan vieze trucjes uithalen die niet werken).
Of je moet joinen (wat niet meer simpel is).
Of je moet subqueries gebruiken (ook niet simpel).
Dus het kan niet simpel in één query. Of het überhaupt kan? Geen idee.
De oplossing behoort te zitten in het pakket van "Basis kennis SQL"
Noppes Homeland op 16/11/2010 21:34:47:
Als je geen idee hebt of het kan, dan kan je beter achterwege laten om er ook maar 1 woord aan vuil te maken.
De oplossing behoort te zitten in het pakket van "Basis kennis SQL"
De oplossing behoort te zitten in het pakket van "Basis kennis SQL"
Waarom help je dan niet mee, als je zo zeker ervan bent dat het kan.
Volgens mij ben je gewoon een arrogante klootzak die rel wilt schoppen.
Noppes Homeland op 16/11/2010 21:34:47:
Als je geen idee hebt of het kan, dan kan je beter achterwege laten om er ook maar 1 woord aan vuil te maken.
De oplossing behoort te zitten in het pakket van "Basis kennis SQL"
De oplossing behoort te zitten in het pakket van "Basis kennis SQL"
Wat is de oplossing dan, Noppes?
Gerben J op 17/11/2010 11:48:19:
Wat is de oplossing dan, Noppes?
Noppes Homeland op 16/11/2010 21:34:47:
Als je geen idee hebt of het kan, dan kan je beter achterwege laten om er ook maar 1 woord aan vuil te maken.
De oplossing behoort te zitten in het pakket van "Basis kennis SQL"
De oplossing behoort te zitten in het pakket van "Basis kennis SQL"
Wat is de oplossing dan, Noppes?
zou ik ook graag willen weten ;s
aan vast plakken?
moet je er niet gewoon nog Gewijzigd op 17/11/2010 11:55:37 door Teun Hesseling
Dan krijg je de links van één provincie. Maar ik wil graag 5 links per provincie.