Avatar billede cot Nybegynder
30. maj 2008 - 21:43 Der er 31 kommentarer og
1 løsning

Udtræl fra mysql - rang

Hej!

Er der ikke en mulighed, eller noget PHP kode, som kan trække nogle tal ud fra en database, herefter se, hvem der har det højeste tal, og så give den med det højeste, Rang 1, og den med andet højeste rang 2 osv...

På forhånd tak

//Cot
Avatar billede jakobdo Ekspert
31. maj 2008 - 05:14 #1
Altså du kan jo lave en order by med sql og så kan du i php give nummer 1 nummeret 1, nummer 2 nummeret 2 osv...
Avatar billede cot Nybegynder
31. maj 2008 - 07:29 #2
jeg ved ikk helt om det der vil virke, og heller ikke hvordan det præcis skal gøres, da jeg kun skal udtrække en person, ud fra hans id (via get)...
Avatar billede jakobdo Ekspert
31. maj 2008 - 09:22 #3
Hvis du kun skal trække en person ud, så skal du enten gøre følgende:

Du trækker alle personer ud og så løber du dem igennem og dermed finder personens ID.

eller

Du laver et stykke kode, som gemmer rang i tabellen. Du må have noget som ændres løbende og hver gang det er ændret, så skal denne kode afvikles.
Avatar billede cot Nybegynder
31. maj 2008 - 09:44 #4
ok, vil kigge på det søndag, da jeg skal noget andet i dag, takker for din hjælp so far... ->
Avatar billede expnet Seniormester
31. maj 2008 - 22:18 #5
er det noget i stil med det her:

http://exp.zubnet.dk/preview.php?spm=833359
Avatar billede cot Nybegynder
01. juni 2008 - 10:25 #6
Ja, det er det, bortset fra, at den kun skal vise f.eks. Bo, og så vise hans point + plads....
Avatar billede erikjacobsen Ekspert
01. juni 2008 - 10:35 #7
Du kan jo beregne hans plads ved at lave en "SELECT count(*) ... WHERE points>117"
hvis Bo altså har 117 points. Og så lægge een til tallet.
Avatar billede cot Nybegynder
01. juni 2008 - 10:46 #8
det er self rigtigt, takker, vil jeg prøve lidt af senere i dag, lyder som en god idé :D
Avatar billede jakobdo Ekspert
01. juni 2008 - 18:16 #9
erikjacobsen: Du er jo genial! :o)
Avatar billede cot Nybegynder
01. juni 2008 - 19:43 #10
Men nu har jeg lige et lille problem, da det der skal "Countes" skal "Summes" først, og denh siger fejl, hvis jeg laver den her: "... COUNT(SUM(travian_pouplation)) ... GROUP BY ...."

Nogen idé om hvad der skal gøres der?

//Cot
Avatar billede erikjacobsen Ekspert
01. juni 2008 - 19:53 #11
Måske, hvis du kan forklare hvad du vil.
Avatar billede cot Nybegynder
01. juni 2008 - 19:57 #12
OK, det prøver jeg her så :D

Folk har nogel byer, og for at jeg kan finde en brugers samlede indbyggertal, skal jeg summere, byernes indbyggertal, nu har jeg deres samlede point. Hvordan får jeg så gjort sådan, at jeg kan tælle, hvor mange der flere indbyggere end Bo eller en anden?

http://traviannews.dk/sig.php?id=1 - Det er noget php-image jeg er i gang med...
Avatar billede erikjacobsen Ekspert
01. juni 2008 - 20:05 #13
"SELECT count(*) ... WHERE sum(travian_pouplation)>117001 group by dit_bruger_felt"

Hvis Bo hersker over 117001 men'sker

sådan ca. Hvad er "pouplation" ? ;)
Avatar billede erikjacobsen Ekspert
01. juni 2008 - 20:06 #14
Næh hov, det var lige et nummer for hurtigt ;)

"SELECT 1 FROM .... group by dit_bruger_felt having sum(travian_pouplation)>117001"

og så find antal rækker med mysql_num_rows
Avatar billede erikjacobsen Ekspert
01. juni 2008 - 20:07 #15
Og som alternativ: ha' et felt i en tabel med summen, så du ikke skal løbe så meget igennem hver gang.
Avatar billede cot Nybegynder
01. juni 2008 - 20:09 #16
hehe nok lidt højt sat det der tal, hehe, men det virker ikk..., min kode er:

$result2 = mysql_query("SELECT count(*) from s1_dk WHERE sum(travian_pouplation)>12 group by travian_player_id")
or die(mysql_error());  // keeps getting the next row until there are no more to get
while($row = mysql_fetch_array( $result2 )) {
$plads = $row['count(*)'];
}

og fejlen er:
Billedet “http://traviannews.dk/sig.php?id=1” kan ikke vises, da det indeholder fejl.

MEN, hvad er fejlen ;P
Avatar billede erikjacobsen Ekspert
01. juni 2008 - 20:10 #17
Du prøver bare det andet forslag - men hvad med at droppe det billedhalløj ind til du ved om du kan få det korrekte tal?
Avatar billede cot Nybegynder
01. juni 2008 - 20:12 #18
ja, kunne være en id XD, nårh, ups, sry havde ikk lige set det andet indlæg ;D prøver nu så... :D
Avatar billede cot Nybegynder
01. juni 2008 - 20:15 #19
havd mener du med SELECT 1?
Avatar billede erikjacobsen Ekspert
01. juni 2008 - 21:45 #20
Jeg mener "SELECT 1 .." - du skal kun tælle antallet, så det er bare en "tilfældig" værdi.
Avatar billede cot Nybegynder
01. juni 2008 - 22:01 #21
men, skal jeg skrive "select 1"?

For synes ikk det virker...
Avatar billede erikjacobsen Ekspert
01. juni 2008 - 22:03 #22
Det er bestemt ikke sikkert det virker - hvad gør du, og hvad sker der?
Avatar billede expnet Seniormester
03. juni 2008 - 16:21 #23
måske sådan der så? :P^^

http://exp.zubnet.dk/preview.php?spm=833359
Avatar billede jakobdo Ekspert
03. juni 2008 - 17:11 #24
Jeg tror ikke vi kommer videre, før cot viser lidt data og hvad det er han arbejder på.
Alle kan jo komme med deres kvalificerede bud, men hvis ikke cot kan bygge dem sammen med hans nuværende løsning, så er vi jo lige langt.
Avatar billede cot Nybegynder
03. juni 2008 - 21:40 #25
OK, her er min nuværende kode, undskyld for at jeg ikk fik svaret noget før...:

<?php
$id=$_GET['id'];

mysql_connect("localhost", "***", "***") or die(mysql_error());
mysql_select_db("***") or die(mysql_error());

// Get all the data from the "example" table
$result = mysql_query("SELECT travian_player_name, SUM(travian_population), COUNT(travian_village_id), travian_alliance_name FROM s1_dk where travian_player_id='$id' GROUP BY travian_player_id")
or die(mysql_error());  // keeps getting the next row until there are no more to get
while($row = mysql_fetch_array( $result )) {
$name = $row['travian_player_name'];
$alliance = $row['travian_alliance_name'];
$pop = $row['SUM(travian_population)'];
$vill = $row['COUNT(travian_village_id)'];
}

$result2 = mysql_query("SELECT 1 FROM s1_dk group by travian_player_id HAVING sum(travian_population)>12")
or die(mysql_error());  // keeps getting the next row until there are no more to get
while($row = mysql_fetch_array( $result2 )) {

}

echo"$name";
echo"<br/>";
echo"$alliance";
echo"<br/>";
echo"$pop";
echo"<br/>";
echo"$vill";
?>

Mit probelm er hvad jeg skal skrive ved $result2 som mysql-query....


//Cot
Avatar billede erikjacobsen Ekspert
03. juni 2008 - 21:50 #26
Prøv
  print mysql_num_rows($result2);

(01/06-2008 20:06:38 "og så find antal rækker med mysql_num_rows")

Men det er helt utestet så jeg er li'så spændt som dig ;)
Avatar billede cot Nybegynder
03. juni 2008 - 21:54 #27
ok prøver det :P

Have slet ikk set det der med numrows, så den må jeg tage på min kapper :)
Avatar billede cot Nybegynder
03. juni 2008 - 21:57 #28
Sådan der, nu skriver den noget der er til at forstå, mange tak for hjælpen, Erik, jeg vil senere prøve at få det ført over til image-delen, men har lige en pokerturneringen, der står og venter ;D

Takker,

//Cot
Avatar billede cot Nybegynder
04. juni 2008 - 20:56 #29
vil du svare erik, eller sakl jeg tage point selv, som du skriver på din profil? c",)
Avatar billede jakobdo Ekspert
04. juni 2008 - 21:16 #30
Tag du point selv, Erik vil ikke have dem.
Avatar billede erikjacobsen Ekspert
04. juni 2008 - 22:03 #31
Jeg samler slet ikke på point, tak.
Avatar billede cot Nybegynder
04. juni 2008 - 22:37 #32
kk, tak endnu en gang ;D
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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