Avatar billede PHPnQrd Nybegynder
02. august 2012 - 09:40 Der er 6 kommentarer

har personen vundet x i træk?

Hejsa,
Jeg står i et dilemma. Jeg kan ikke helt finde ud af hvordan jeg finder ud af om en bruger har vundet x antal turneringer i træk. Hvordan laver jeg dette?

Mine kolonner er:

user_serial
currency_serial
tourney_serial
table_serial
rank

Rank skal være 1 (Da man så har vundet).
tourney_serial er id'et på den turnering man skal tjekke hvor mange man har vundet i træk.

Hvis den finder 4 i træk og den 5 så ikke er rank(1) skal den starte forfra. Det skal være f.eks 5 i træk med rank=1. I TRÆK.
Avatar billede PHPnQrd Nybegynder
02. august 2012 - 10:21 #1
Måske sådan?

[code lang="PHP"]<?php
function __init__($tourney, $howmany) { $i=0;
  $SQL = "SELECT * FROM user2tourney WHERE tourney_serial = '".$tourney."' ORDER BY id DESC LIMIT 0,".$howmany;
  $o = mysql_query($SQL ) or die ( mysql_error());
  while($o=mysql_fetch_assoc($o)):
      if ( $o['rank']==1):
        $i++;
      else:
          $i--;
      endif;
  endwhile;
 
  return $i;
}

echo "Du har vundet ".__init__(123, 5);

?>[/code]
02. august 2012 - 12:30 #2
Spørgsmål til spørgsmål:
1.  Det kunne tyde på, at du har oplysninger om flere forskellige slags turneringer i user2tourney, såsom skak, ludo, ..  Du vælger så en slags turnering, i $tourney, og vil have oplysninger om den turnering.
2.  Hvordan kender du rækkefølgen på turneringerne?  currency_serial?  table_serial?
3.  Jeg forstår dit spørgsmål, at du for den valgte slags turnering vil vide hvilke personer der har vundet midst x gange i træk.  Skal x kunne variere, eller drejer det sig altid om 5 gange i træk?  Så hvis x = 3 og Ole har vundet nummer 4, 5, 6, 7, 9, 10, 11, altså først fire gange i træk, så en taber, og derefter tre gange i træk, så vil du bare vide at Ole er ok (han har vundet mindst tre gange i træk) eller vil du vide mere, så som hvilke numre han har vundet?
Avatar billede PHPnQrd Nybegynder
02. august 2012 - 13:40 #3
Jeg kan vide på table_serial hvilken turnering det er. (også rækkefølgen).

Ole spiller turnering 2 og han skal vinde 5 i træk. og vinder 4 af dem. Han taber den 5. Derfor skal ole nu fremstå som 0 igen da han ikke har vundet 5 i træk. Vinder han derefter 5 i træk, sættes den som 5.

Men hvad hvis han vinder 6 i træk? hvordan får jeg den til at vise 5 + 1?, den skal jo restarte efter d. 5, også alligevel ikke??

Der skal også tages højde for, at hvis ole spiller turnering 2 og vinder 4 i træk, og spiller turnering 3 og vinder 4 i træk, så skal turnering 2 stadig returnere "4" og samme med turnering 3.
02. august 2012 - 15:51 #4
Det står mig ikke krystalklart. 

(1)  Hvilken oplysning står der i $tourney? 

(2)  Så siger du, at feltet table_serial indeholder både hvilken turnering det er og rækkefølgen.  Hvordan ligger det, er der forskellige turneringer, såsom turnering1, turnering2, o.s.v., og er der et antal runder, såsom turnering1 runder 1 til 20, og skal skal Ole så vinde for eksempel turnering1 runder 5, 6, 7, 8, og 9 for at kvalificere?

(3)  Det antal runder der skal vindes i træk, er det altid 5?

(4)  Så er jeg ikke helt med på det output du skal bruge.  Du siger, at hvis Ole i en turnering vinder fire runder i træk og så taber, så skal han 'fremstå som 0', men længere nede siger du, at hvis Ole i turnering 2 vinder 4 i træk, så skal turnering 2 'returnere 4'.

Er det således, at du for alle spillere for alle turneringer vil vide det højeste antal runder de har vundet i træk, eller vil du for alle turneringer vide hvilke spillere der har vundet mindst 5 runder i træk og for resten af spillerne ingenting?  Hvis Ole i turnering1 vinder seks i træk og Kaj i turnering1 vinder 4 i træk, skal outputtet så være Ole 6 Kaj 4 eller skal det bare være Ole 6?  Hvis Ole i turnering1 vinder runde 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, altså først vinder han fem i træk, så taber han, og så vinder han seks i træk, skal outputtet så være Ole 6 (fordi 6 var det højste antal runder han vandt i træk) eller skal det være Ole 5 Ole 6?
04. august 2012 - 16:31 #5
PHPnQrd, kom  fra det igen?  Hvis spørgsmålet ikke længere er aktuel, så luk med eget svar.  Elles giv mer info, så vi kan komme videre.
17. februar 2013 - 21:40 #6
PHPnQrd, jeg prøver lige en gang til.  Du oprettede dette spørgsmål for godt et halvt år siden. Jeg går ud fra, at spørgsmålet ikke længere er aktuelt, så kan jeg bede dig lukke det igen?  Hvis spørgsmålet stadig er aktuelt, så giv flere oplysninger, som spurgt, så vi kan komme videre.
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