Hey,

Ik heb een tabel genaamd users met "money" in als ik nu een highscore wil maken met al men users waarvan diegene met het meeste geld eerst staat en met het minste laatst hoe doe ik dit dan?

Jelle
Zoiets dacht ik..
SELECT money FROM tabel LIMIT 0, 30

verbeter me als ik het verkeerd heb
ik zal je verbetere ;)
[code]Select money from tabel order by money

<?php

$vQuery = "SELECT m.money, g.naam FROM tabel1 AS m, tabel2 as G WHERE g.id = m.g_id ORDER BY m.money DESC";

//ik dacht dat dit het was als je een genormaliseerde database hebt
//bij tabel1 is de tabel waar je geld instaat
//tabel2 is de members tabel
?>


[ignore]
members
-id
-naam

geld
-g_id
-money
[/ignore]
Dat is het datamodel, wel ff foreignkeys leggen

correct me if i'm wrong

ik heb het niet getest

[edit]
Beetje laat, ben tussendoor gaan belle...
[/edit]
[edit]
FF wat stomme foutjes eruit gehaald naar aanleiding van de post van Jan
[/edit]
Even precies: je had toch één tabel 'users' met daarin een veld 'money' en (neem ik aan) ook een veld 'username'? Dan hoort je query er zo uit te zien:

<?php
    $sql = "
        SELECT username, money
        FROM users
        ORDER BY money DESC
        ";
?>

Die DESC moet er bij, anders denkt MySQL dat je ASC wilt sorteren en dat wil je niet, want het hoogste bedrag moet bovenaan komen.
Waarom is het nodig om members en geld te splitsen? 'money' kan gewoon worden ondergebracht bij 'members', aangezien deze toch onlosmakelijk verbonden zijn lijkt mij. een speler kan geen meerdere 'money's' hebben, en geld kan niet van meerdere spelers tegelijk zijn. Een genormaliseerde database is mooi, maar dit hoort gewoon bij elkaar. Daarom zowel money als naam in een tabel:

members
-id
-naam
-money

wanneer je dan bv de top 30 wilt, gebruik je een combinatie van de hierboven genoemde incomplete oplossingen:
$res = mysql_query("SELECT naam,money FROM members ORDER BY money DESC LIMIT 0,30")

simpeler, en correct;)

jan was me voor:)
@Mark: Het lijkt misschien niet handig om hier te normaliseren maar als er meerde gegevens in de database money zouden staan, is het handig om dat te scheiden.

Het is ook handig om te scheiden omdat je in de tabel Members persoonlijke gegevens verwacht; geslacht, geboortedatum ed

Als je dan een aparte tabel maakt met eigenschappen is dat overzichtelijker.
dank je allemaal voor de reacties :p ik zal het uitesten :-)

het werkt niet, ik krijg niets te zien mijn script ziet er nu zo uit :
<?php
session_start();
if($_SESSION['s_logged_n'] == 'true'){
include 'process.php';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Bizzlife</title>

</head>

<body>
<center>
  <table width="800" border="1">
    <tr>
      <th scope="col"><table width="800" height="703" border="0" bgcolor="#CCCCCC">
  <tr>
    <th height="39"><?php
	include "upper2.htm";
	?>
      </p>
      <hr />
      <p><?php
	  include "membmenu.htm"
	  ?></p></th>
  </tr>
  <tr>
    <td height="591"><p align="left"><u>Ranglijst:</u></p>
      <p align="left">
	  <?php
	  include "config.php";
	  
$res = mysql_query("SELECT username,money FROM users ORDER BY money DESC LIMIT 0,30");
?></p>
      <p align="left"><?php
	  echo "$res";
	  ?></p>
      <p align="left">&nbsp;</p>
      <p align="left">&nbsp;</p>
      <p align="left">&nbsp;</p>
      <p align="left">&nbsp;</p>
      <p align="left">&nbsp;</p>
      <p>&nbsp;</p>
      <p>&nbsp;</p>
      <p>&nbsp;</p>
      <p>&nbsp;</p>
      <p>&nbsp;</p>
      <p></p>
      <p></p>
      <p></p>
      <p></p>
      <p></p></td>
  </tr>
  <tr>
    <td height="30"><?php
	include "down.htm";
	?></td>
  </tr>
</table></th>
    </tr>
  </table>
  
</center>
</body>
</html>
<?php
} else {
header("Location: login.php");
}
?>


en ik heb een tabel die users noemt met een veld dat username en een ander veld dat money heet

Reageren