3 Verschillende vragen betreft waardes uit database
ik ben bezig met een klein spelletje te maken in php en zit met verschillende vragen.
Namelijk :
Vr 1. Bankgeld van alle gebruikers bij elkaar optellen (vanuit de database)
Ik ben bezig met een statistieken pagina en daarop wil ik weergeven hoeveel geld er in totaal in het spel aanwezig is. Hoe kan ik dat het beste doen?
Is dit een goede manier? (niet dat het werkt)
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
$stats = mysql_query("SELECT bankgeld FROM members");
while($ranking = mysql_fetch_assoc($stats)) {
&totalbankgeld = 0 + $ranking['bankgeld'];
}
?>
$stats = mysql_query("SELECT bankgeld FROM members");
while($ranking = mysql_fetch_assoc($stats)) {
&totalbankgeld = 0 + $ranking['bankgeld'];
}
?>
En dat het dan per row result wordt opgeteld, of is er een betere/andere manier?
Het valt mij namelijk op dat ik voor veel dingen in PHP het bovenstaande code gebruik.
Ik ben namelijk nog niet zo heel goed in PHP.
Vr 2. Uitgebreide ledenlijst maken.
Ik heb momenteel mijn ledenlijst zo gemaakt, dat je jezelf in een kleurtje ziet staan.
Bij verschillende ledenlijsten zie ik ook een rank:
#1 gebruiker
#2 gebruiker2
#3 gebruiker3
etc. In sommige stukjes PHP heb ik ook wel eens zoiets als "for each.." en een waarde met "++",
Wordt dat gebruikt bij de ranken bepalen? Zoja, hoe?
Hoe kan ik er voor zorgen, dat er na een bepaalde aantal results een pagina erbij komt?
De meeste ledenlijsten hebben onderaan en/of bovenaan: "[1],[2],[3].." staan.
Vr 3. Met welke code kan je zien, wat de gebruikers het meest hebben gekozen?
Stel je hebt 3 personages, waar de de gebruikers uit kunnen kiezen in het begin. Hoe kan ik het laten uitrekenen, welk van de 3 het meest is gekozen?
Ik kom elke keer weer bij het bovenstaande script, maar dan selecteren op "personage" en vervolgens alle results bij elkaar optellen. Is daar een betere manier voor?
Ik hoop dat er mensen zijn, die mij hier antwoord op kunnen geven.
Mvg,
Marco
Om te laten zien hoeveel geld er in totaal aanwezig is, kun je de SUM() functie gebruiken in MySQL. Bijv.:
SELECT SUM(bankgeld) FROM members
2.1
Wat voor soort rank heb je het over? Over het algemeen wordt in de database opgeslagen welke rank een member heeft, en wordt dat niet gehard-code in het script zelf.
2.2
Dit doe je door een pager te maken en te gebruiken. Een pager is een class of verzameling van functies die (1) het totale aantal resultaten telt, (2) kijkt hoeveel resultaten er per pagina mogen komen, (3) aan de hand daarvan berekent hoeveel pagina's er zijn en opties creëert om te navigeren tussen die pagina's.
3
Om dit uit te kunnen rekenen, zul je deze statistieken moeten bijhouden in bijvoorbeeld een database tabel. Vervolgens kun je tellen hoe vaak welke optie is gekozen.
In SQL heb je aggegrate functions
Dus bv:
Antw. 2
Google eens op pagination, er zijn voldoende voorbeelden te vinden.
Antw. 3
Ook dit kan je gewoon weer met een query
Stephan G op 10/09/2013 12:49:40:
2.1
Wat voor soort rank heb je het over? Over het algemeen wordt in de database opgeslagen welke rank een member heeft, en wordt dat niet gehard-code in het script zelf.
2.1
Wat voor soort rank heb je het over? Over het algemeen wordt in de database opgeslagen welke rank een member heeft, en wordt dat niet gehard-code in het script zelf.
Stel dat ik 50 gebruikers heb. Dan is de bedoeling dat de ranks in de ledenlijst 1 tot 50 wordt. De ranken worden niet uit de database gehaald. Je zou het kunnen vergelijken met een toplijst. De ranken blijven staan, maar de gebruikers en andere informatie kan worden verschoven naar boven/beneden doormiddel van hoogste level.
@Ger van Steenderen,
Bedankt voor je uitleg/info. :)
ik zal even verder googlen, en zijn mijn vragen hierbij beantwoord. :)
Gewijzigd op 10/09/2013 13:10:09 door Marco Eilander
In dat geval zou ik gewoon een ORDER BY in je query opnemen, en inderdaad verder gewoon met PHP een nummertje voor de namen gooien :).