Avatar billede proff Nybegynder
22. august 2004 - 17:07 Der er 11 kommentarer og
1 løsning

Hjælp til et mysql udtræk?

Hej, jeg skal udregne hvilken plads man selv ligger på. Altså, i min tabel users, er der en masse brugere. De har alle forskellige points. Og den der har flest points ligger self. nr 1, den der har mindst er nr chok. Hvordan kan jeg lave et mysql udtræk om hvilken plads man selv ligger på?

Eller er det både php og mysql?
Avatar billede Slettet bruger
22. august 2004 - 17:14 #1
Du kan tælle hvor mange der har flere point end dig:

SELECT COUNT(*) FROM din_tabel WHERE point > dine_point

Hvor dine_point kunne være en variabel fra PHP
Avatar billede proff Nybegynder
22. august 2004 - 17:15 #2
Jeg er ikke lige helt med.. Kan du give mig et eksempel på noget kode?
Avatar billede Slettet bruger
22. august 2004 - 17:20 #3
Tjae..lad os sige at du allerede har trukket en bruger ud.

I den forbindelse har du lagt hans point i $antal_point.

så er det bare

$sql = 'SELECT COUNT(*) AS placering FROM din_tabel WHERE point > "' . $antal_point . '"';
$result = mysql_query($sql);
$row = mysql_fetch_array($result);

echo 'Du ligger nummer ' . $row['placering'];
Avatar billede jakobclausen Nybegynder
22. august 2004 - 17:34 #4
<?
#forbindelse til database
$minePoint = mysql_result(mysql_query("SELECT point FROM tabelnavn WHERE navn='proff'"),0);
$placering = mysql_result(mysql_query("SELECT Count(*) FROM tabelnavn WHERE point>$minePoint"),0);
echo 'Du ligger nummer ' . $placering';
?>
Avatar billede jakobclausen Nybegynder
22. august 2004 - 17:37 #5
Rettelse:

---
<?
#forbindelse til database
$minePoint = mysql_result(mysql_query("SELECT point FROM tabelnavn WHERE navn='proff'"),0);
$placering = mysql_result(mysql_query("SELECT Count(*)+1 as res FROM tabelnavn WHERE point>$minePoint"),0);
echo 'Du ligger nummer ' . $placering';
?>
---
Avatar billede proff Nybegynder
22. august 2004 - 17:56 #6
Hvad hvis der er flere der har de samme points? Altså flere med 5 point? Hvad sker der så?
Avatar billede proff Nybegynder
22. august 2004 - 17:57 #7
Kommer de så allesammen til at ligge på den samme plads?
Avatar billede Slettet bruger
22. august 2004 - 18:06 #8
Ja..sådan er det jo også i det virkelige liv.
Avatar billede Slettet bruger
22. august 2004 - 18:08 #9
der mangler nok lige en tilføjelse, hvis du nu skulle være heldig og ligge nummer 1 :)

$sql = 'SELECT COUNT(*) AS placering FROM din_tabel WHERE point > "' . $antal_point . '"';
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
if(mysql_num_rows($result) > 0) {
echo 'Du ligger nummer ' . $row['placering'];
} else {
echo 'Du ligger nummer 1!!!';
}
Avatar billede Slettet bruger
22. august 2004 - 18:13 #10
Og ja, jeg har da også en rettelse :D

COUNT(*) skal være COUNT(*)+1
Avatar billede jakobclausen Nybegynder
22. august 2004 - 18:24 #11
el_barto >> Vedr. 22/08-2004 18:08:33

Er alt dette nødvendigt??
Count(*) = 0
Count(*)+1 = 1 - altså ligger man nr. 1
Avatar billede proff Nybegynder
08. april 2007 - 13:38 #12
Lukning forsinket en årrække .-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester