Gå til innhold

Utregning i av tall i en loop


Anbefalte innlegg

Har ett lite problem med og regnet ut tallet til vær bruker her:

 

while ($rank = $ranking->fetch_array(MYSQLI_ASSOC)) {
						$hull = explode("|", $rank['score']);
						$hull_count = count($hull) -1;
						echo $rank['navn']." - ".$rank['total']."<br />";
						 $rank_total = $rank_total + $rank['total'] / $rank_runder;
						 for($r=1; $r <= $hull_count; $r++) {
							echo $hull[$r]."<br />";
						 }
					}
					echo round($rank_total)."<br />";
					echo $rank_runder."<br /><br />";

 

inne i mysql ser rank['score'] slik ut feks: |1|2|3|4|5|6|7|8|9|10 der det første tallet er hull 1.

 

Jeg feks summere hull 1 til vær enkelt bruker.

Lenke til kommentar
Videoannonse
Annonse

Har ett lite problem med og regnet ut tallet til vær bruker her:

 

while ($rank = $ranking->fetch_array(MYSQLI_ASSOC)) {
						$hull = explode("|", $rank['score']);
						$hull_count = count($hull) -1;
						echo $rank['navn']." - ".$rank['total']."<br />";
						 $rank_total = $rank_total + $rank['total'] / $rank_runder;
						 for($r=1; $r <= $hull_count; $r++) {
							echo $hull[$r]."<br />";
						 }
					}
					echo round($rank_total)."<br />";
					echo $rank_runder."<br /><br />";

 

inne i mysql ser rank['score'] slik ut feks: |1|2|3|4|5|6|7|8|9|10 der det første tallet er hull 1.

 

Jeg feks summere hull 1 til vær enkelt bruker.

 

Hei,

 

I MySql så har du jo funksjoner som SUM, AVG(average), count o.l. Med disse kan du gjøre beregninger direkte i spørringen mot databasen. Er ellers vanskelig å vite hva du nøyaktig ønsker da det var litt lite detaljer, spesielt ettersom vi ikke kan se spørringen du bruker. Skal du summere per brukere scoren på flere "runder" og beregne gjennomsnitt score?

 

Med litt mer detaljer skal jeg gi deg et bedre svar!

Lenke til kommentar

Har ett lite problem med og regnet ut tallet til vær bruker her:

 

while ($rank = $ranking->fetch_array(MYSQLI_ASSOC)) {
						$hull = explode("|", $rank['score']);
						$hull_count = count($hull) -1;
						echo $rank['navn']." - ".$rank['total']."<br />";
						 $rank_total = $rank_total + $rank['total'] / $rank_runder;
						 for($r=1; $r <= $hull_count; $r++) {
							echo $hull[$r]."<br />";
						 }
					}
					echo round($rank_total)."<br />";
					echo $rank_runder."<br /><br />";

 

inne i mysql ser rank['score'] slik ut feks: |1|2|3|4|5|6|7|8|9|10 der det første tallet er hull 1.

 

Jeg feks summere hull 1 til vær enkelt bruker.

 

Hei,

 

I MySql så har du jo funksjoner som SUM, AVG(average), count o.l. Med disse kan du gjøre beregninger direkte i spørringen mot databasen. Er ellers vanskelig å vite hva du nøyaktig ønsker da det var litt lite detaljer, spesielt ettersom vi ikke kan se spørringen du bruker. Skal du summere per brukere scoren på flere "runder" og beregne gjennomsnitt score?

 

Med litt mer detaljer skal jeg gi deg et bedre svar!

 

Ja. Tabellen ser slik ut:

 

id | score | bruker_id | navn | total | bane

 

I "score" så er lagt inn |1|3|3|2|4|5|4 siden det er forskjellig hull på vær bane og når jeg tar det ut i $hull = explode("|", $rank['score']); så får jeg opp i for() hvor mange kast han fikk på vert hull. Men jeg vill summere hvor mange kast han brukte på vert hull i snitt.

 

Er frisbee golf score system jeg holder på og lage.

Lenke til kommentar

Jeg tror du har en dårlig database struktur, her bør du bruke flere tabeller hvor bl.a. score ligger i en egen tabell med en score pr rad/forekomst. Da blir det mye enklere å gjøre denne jobben i SQL setningen. Vil nok være enklere å komme med forslag om en mer optimal database struktur hvis vi vet litt mer om hvordan dette score systemet fungerer.

 

Skal du jobbe med arrays er foreach() en bedre løsning enn for():

foreach (explode("|", $rank['score']) as $hull) {
 echo $hull . '<br />';
}

Lenke til kommentar
  • 3 uker senere...

Har ett lite problem med og regnet ut tallet til vær bruker her:

 

while ($rank = $ranking->fetch_array(MYSQLI_ASSOC)) {
						$hull = explode("|", $rank['score']);
						$hull_count = count($hull) -1;
						echo $rank['navn']." - ".$rank['total']."<br />";
						 $rank_total = $rank_total + $rank['total'] / $rank_runder;
						 for($r=1; $r <= $hull_count; $r++) {
							echo $hull[$r]."<br />";
						 }
					}
					echo round($rank_total)."<br />";
					echo $rank_runder."<br /><br />";

 

inne i mysql ser rank['score'] slik ut feks: |1|2|3|4|5|6|7|8|9|10 der det første tallet er hull 1.

 

Jeg feks summere hull 1 til vær enkelt bruker.

 

Hei,

 

I MySql så har du jo funksjoner som SUM, AVG(average), count o.l. Med disse kan du gjøre beregninger direkte i spørringen mot databasen. Er ellers vanskelig å vite hva du nøyaktig ønsker da det var litt lite detaljer, spesielt ettersom vi ikke kan se spørringen du bruker. Skal du summere per brukere scoren på flere "runder" og beregne gjennomsnitt score?

 

Med litt mer detaljer skal jeg gi deg et bedre svar!

 

Ja. Tabellen ser slik ut:

 

id | score | bruker_id | navn | total | bane

 

I "score" så er lagt inn |1|3|3|2|4|5|4 siden det er forskjellig hull på vær bane og når jeg tar det ut i $hull = explode("|", $rank['score']); så får jeg opp i for() hvor mange kast han fikk på vert hull. Men jeg vill summere hvor mange kast han brukte på vert hull i snitt.

 

Er frisbee golf score system jeg holder på og lage.

 

Hei Hei,

 

Sorry sent svar. Noen som vet hvordan en kan knytte diskusjon.no varsler mot ekstern e-post adresse?

 

Uansett, dette klargjør jo en del.

 

For å forenkle strukturen din uten å gå i for mye detaljer så ville jeg endret "Score" feltet og lagt til et felt pr. hull. Så felt hull1, hull2, hull3 ++ og til slutt eget felt for totalsummen. Dette vil bi deg bedre muligheter for sortering, samt det du nevner pr hull å beregne gjennomsnitt(AVG funksjon).

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...