Daar ben ik weer, met een ander soort vraag van het ophalen van gegevens uit de database..
Ik ben bezig met een statistiekenpagina, en wil een top5 van de spelers die het meeste spelers vermoord hebben.. Nu had ik hulp gevraagd via msn en die gaf mij het volgende (wat niet werkt)..
Hij moet dus als het waren het aantal schutter_name uit de tabel moord die hetzelfde zijn bij elkaar optellen en dan moet hij een top 5 geven met de spelers met de meeste moorden op hun naam..PHP Code:
$querymoord = "SELECT COUNT(schutter_name) AS aantalmoord FROM moorden ORDER BY aantalmoord DESC LIMIT 5";
$resultmoord = mysql_query($querymoord) or die (mysql_error());
$aantalmoorden = mysql_num_rows($resultmoord);
while($fetchmoord = mysql_fetch_assoc($resultmoord)){
$imoord = 1;
echo "
<tr>
<td>".$imoord."</td>
<td><a href='/profiel/".$fetchmoord['schutter_name']."/'>".$fetchmoord['schutter_name']."</a></td>
<td><img src='/icon/coins.png'></td>
<td>".$fetchmoord['aantalmoord']."</td>
</tr>";
$imoord++;
}
echo "</table>";
- Hoe haal ik dit op uit de database
-
18-01-2010, 18:08 #1
- Berichten
- 1.406
- Lid sinds
- 17 Jaar
Hoe haal ik dit op uit de database
Laatst aangepast door Robbin de Kruijf : 18-01-2010 om 18:31
-
-
18-01-2010, 18:13 #2
- Berichten
- 465
- Lid sinds
- 18 Jaar
PHP Code:$querymoord = "SELECT schutter_name, aantalmoord FROM moord ORDER BY aantalmoord DESC LIMIT 5";
$resultmoord = mysql_query($querymoord) or die (mysql_error());
$aantalmoorden = mysql_num_rows($resultmoord);
while($fetchmoord = mysql_fetch_assoc($resultmoord)){
$imoord = 1;
echo "
<tr>
<td>".$imoord."</td>
<td><a href='/profiel/".$fetchmoord['schutter_name']."/'>".$fetchmoord['schutter_name']."</a></td>
<td><img src='/icon/coins.png'></td>
<td>".$fetchmoord['aantalmoord']."</td>
</tr>";
$imoord++;
}
echo "</table>";
-
18-01-2010, 18:15 #3
- Berichten
- 1.406
- Lid sinds
- 17 Jaar
Nee het is niet zo dat aantalmoord een row in de moord database tabel is.. hij moet dus het aantal schutter_name die dezelfde waardes hebben tellen en dan een top5 maken..
-
18-01-2010, 18:30 #4
- Berichten
- 4.961
- Lid sinds
- 17 Jaar
Het helpt een hoop als je laat zien welke tabellen je hebt en met welke velden ;)
-
18-01-2010, 18:32 #5
- Berichten
- 1.406
- Lid sinds
- 17 Jaar
Ik heb een tabel genaamd moorden. daarin zit een veld die heet schutter_name..
Hij moet het veld schutter_name tellen waar de waardes hetzelfde zijn en daar moet hij een top5 van maken..
-
18-01-2010, 18:45 #6
- Berichten
- 613
- Lid sinds
- 19 Jaar
Voorbeeld van de waardes die erin staan?
-
18-01-2010, 18:46 #7
- Berichten
- 651
- Lid sinds
- 17 Jaar
waarom doe je zo moeilijk?!
Of ik begrijp hem niet helemaal, maar volgens mij kan dit toch heel simpel door ze te ORDER BY moord DESC, LIMIT 1,5 ?
dus :
PHP Code:$query = mysql_query("SELECT * FROM tabel ORDER BY moord DESC, LIMIT 1,5");
Correct me if i'm wrong
-
18-01-2010, 18:46 #8
- Berichten
- 1.406
- Lid sinds
- 17 Jaar
ja het zijn namen.. schutter_name.. dus gebruikersnamen..
-
18-01-2010, 18:48 #9
- Berichten
- 751
- Lid sinds
- 15 Jaar
Ik snap wat robin wilt,
schutter_name is de dader, je moet dus optellen hoevaak de dader in de database voorkomt, en aan de hand daarvan een top 5 te maken.
Robin, echter is dit niet zo heel erg netjes qua structuur van je DB, waarom niet gewoon een record aanmaken bij users?
aantalmoorden int (4) bijv.
En elke keer als een lid iemand vermoord aantalmoorden = aantalmoorden+1
Good luck;-)
-
18-01-2010, 18:49 #10
- Berichten
- 1.406
- Lid sinds
- 17 Jaar
Juist! dus uiteindelijk krijg je een lijst met bijvoorbeeld
Dader_1 - 6 moorden
Dader_2 - 3 moorden
Dader_3 - 2 moorden
Dader_4 - 2 moorden
Dader_5 - 1 moord
-
18-01-2010, 18:51 #11
- Berichten
- 751
- Lid sinds
- 15 Jaar
Maar Robin, wat je nu doet is alle daders die in deze tabel staan bij elkaar optellen.
Zie mijn oplossing hierboven.
-
18-01-2010, 18:51 #12
- Berichten
- 1.406
- Lid sinds
- 17 Jaar
Ik snap wat robin wilt,
schutter_name is de dader, je moet dus optellen hoevaak de dader in de database voorkomt, en aan de hand daarvan een top 5 te maken.
Robin, echter is dit niet zo heel erg netjes qua structuur van je DB, waarom niet gewoon een record aanmaken bij users?
aantalmoorden int (4) bijv.
En elke keer als een lid iemand vermoord aantalmoorden = aantalmoorden+1
Good luck;-)
-
18-01-2010, 18:51 #13
- Berichten
- 651
- Lid sinds
- 17 Jaar
Dan wordt het inderdaad een ander verhaal.
Maar zou het sowieso niet makkelijker zijn wanneer er een moord word gepleegd :
Je pleegt moord, systeem pak je naam, je haalt uit het systeem het voorgaande aantal moorden dat is gepleegd, telt er 1 bij op = nieuwe aantal moorden.
Dan kun je door middel van de door mij genoemde $query een top 5 samen stellen, is het niet?!
EDIT: zag dat iemand me voor was
-
18-01-2010, 18:53 #14
- Berichten
- 1.406
- Lid sinds
- 17 Jaar
Dan wordt het inderdaad een ander verhaal.
Maar zou het sowieso niet makkelijker zijn wanneer er een moord word gepleegd :
Je pleegt moord, systeem pak je naam, je haalt uit het systeem het voorgaande aantal moorden dat is gepleegd, telt er 1 bij op = nieuwe aantal moorden.
Dan kun je door middel van de door mij genoemde $query een top 5 samen stellen, is het niet?!
-
18-01-2010, 18:53 #15
- Berichten
- 751
- Lid sinds
- 15 Jaar
@ Stefan waarom zou je zo moeilijk doen.
Dan gaat ie dus bij elke moord voor een simpele getalletje 2 tabellen door.
De door mij genoemde oplossing is voor jou het makkelijkste.
Wat er in de tabel moorden moet staan, is meer voor de moord zelf.
Robin je kan het ook wel met een query doen met je huidige gegevens hoor, ik PM je zo even.
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic