sql tabel vraag
ik weet niet hoe ik het noemen maar heb het topic maar zo genoemd dus..
ik wil graag een top 5 op mijn website waar leden hun website kunnen toevoegen
met hun gespaarde credits, nu wil ik dat als de laatste website onderaan dus als die
uit de top 5 word gehaald omdat er een andere link word geplaatst dan wil ik die automatisch uit de database verwijderd hebben, volgens mij moet ik iets in $top2 veranderen als ik het goed heb?
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$top2 = "SELECT * FROM top5 WHERE rest > 0 ORDER BY id ASC LIMIT 5";
$top1 = mysql_query($top2);
while($top = mysql_fetch_assoc($top1)){
echo '<tr><td class="inhoud" width="153" align="left"><a href="'.$top['url'].'" target="_blank" title="'.$top['naam'].'"></tr></td>';
}
?>
$top2 = "SELECT * FROM top5 WHERE rest > 0 ORDER BY id ASC LIMIT 5";
$top1 = mysql_query($top2);
while($top = mysql_fetch_assoc($top1)){
echo '<tr><td class="inhoud" width="153" align="left"><a href="'.$top['url'].'" target="_blank" title="'.$top['naam'].'"></tr></td>';
}
?>
alvast bedankt.
Gewijzigd op 03/02/2011 22:09:23 door Robbert de Brock
DELETE FROM top5 WHERE <waarde>??
Gewijzigd op 03/02/2011 22:13:09 door Jordi Kroon
hij sorteert op id dus moet eingelijk ergens zien in te stellen dat er maximaal 5 id's kunnen worden aan gemaakt en dan DELETE FROM top5 WHERE id >/=/...? 5
ofzoiets?
Toevoeging op 03/02/2011 22:14:42:
Jordi kroon op 03/02/2011 22:11:39:
*Sorry vraag niet goed gelezen*
ja inderdaad haha limit heb ik er al instaan :P
Gewijzigd op 03/02/2011 22:16:44 door Robbert de Brock
Mischien met num_rows controleren of er 5waardes zijn zoja delete de oudste dus met het laagste id en plaats nieuwe anders gewoon een nieuwe plaatsen
met DELETE FROM top5 WHERE id > 5 hou je altijd dezelfde id's (1-5) in beeld en dat wil je niet denk ik. Wat is de regel/voorwaarde om in de top 5 te komen? Toch niet het id??
weet neit wat daat moet eingelijk
nee maar hoe moet het script anders de eerste toegevoegde site zien (dus onderaan)?
Bedoel je de 5 meest recent ingevoerde sites? Dus de laatst 5 van onder te beginnen met de laatste?
Aad B op 03/02/2011 22:24:10:
Leg eens beter uit wat je wil?
Bedoel je de 5 meest recent ingevoerde sites? Dus de laatst 5 van onder te beginnen met de laatste?
Bedoel je de 5 meest recent ingevoerde sites? Dus de laatst 5 van onder te beginnen met de laatste?
Stel er staan 5 sites in de top 5 en als er dan weer eentje word toegevoegd gaat de laatste eruit en deze wil ik dan automatisch uit de database verwijderd hebben.
Waarom selecteer je niet gewoon de laatste 5 uit alle sites?
SELECT * FROM top5 ORDER BY top5.rating DESC LIMIT 0,4
dan doe je toch gewoon iets als dit:
DELETE FROM top5 ORDER BY top5.rating DESC LIMIT 5,xx
Jordi kroon op 03/02/2011 22:31:23:
Waarom selecteer je niet gewoon de laatste 5 uit alle sites?
dan blijven die andere in de database staan en dat wil ik niet...
Stel er staat in: id 1 t/m 5 en er komt er eentje bij en die krijgt (autoincrement) id 6
welke moet er dan uit?
laat anders ook even zien hoe je DB er uit ziet, geloof dat we het niet helemaal begrijpen
Jasper van Oeffel op 03/02/2011 22:31:24:
Ok stel je hebt dus de volgende code om de top5 op te halen:
SELECT * FROM top5 ORDER BY top5.rating DESC LIMIT 0,4
dan doe je toch gewoon iets als dit:
DELETE FROM top5 ORDER BY top5.rating DESC LIMIT 5,xx
SELECT * FROM top5 ORDER BY top5.rating DESC LIMIT 0,4
dan doe je toch gewoon iets als dit:
DELETE FROM top5 ORDER BY top5.rating DESC LIMIT 5,xx
en waar zou ik dan die laatste code in moeten voeren?
Toevoeging op 03/02/2011 22:36:28:
Okee, unno momento.
Toevoeging op 03/02/2011 22:39:47:
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
CREATE TABLE IF NOT EXISTS `top5` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`gebruiker` varchar(155) NOT NULL,
`naam` varchar(100) NOT NULL,
`url` varchar(100) NOT NULL,
`rest` int(5) NOT NULL,
PRIMARY KEY (`id`),
KEY `rest` (`rest`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=58 ;
`id` int(10) NOT NULL AUTO_INCREMENT,
`gebruiker` varchar(155) NOT NULL,
`naam` varchar(100) NOT NULL,
`url` varchar(100) NOT NULL,
`rest` int(5) NOT NULL,
PRIMARY KEY (`id`),
KEY `rest` (`rest`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=58 ;