Versimpeld gesteld heb ik een database (mysql) met daarin onder andere datums en posities. Het gaat om een wedstrijdklassement, de ene dag sta ik 1ste, de volgende dag sta ik bv 4de.
Nu wil ik mijn relatieve positie gaan berekeken ten opzichte van de dag ervoor. Dus in mijn gestelde voorbeeld ben ik 3 plekken gezakt.
Wat ik nu heb aan code:
Nu moet er dus achter de $row["positie"] de relative positie worden getoont.
Nu kan ik wel in de while lus weer een connectie maken met mysql en de positie ophalen van de dag ervoor en hem zo gaan berekeken.
Maar dat zie ik niet zo zitten, aangezien er namelijk nogal wat rijen in de db staan (nu 200, maar dat worden er iedere dag meer) en omdat ik die posities 1 stap verder in de lus zelf al binnenhaal.
Als de sql statment anders gesorteerd was, dan krijg ik de oudste datums eerst in de while lus, dan zou het vrijmakkelijk kunnen omdat je dan de huidige positie meegeeft aan de volgende stap van de lus:
Maarja, zo wil ik het dus niet hebben staan op mijn website
Daarom dacht ik dat er misschien een slimmere oplossing voor was. Misschien kan iemand me over dit soort onderwerpen iets bijleren.
Nu wil ik mijn relatieve positie gaan berekeken ten opzichte van de dag ervoor. Dus in mijn gestelde voorbeeld ben ik 3 plekken gezakt.
Wat ik nu heb aan code:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
| $sql = "select date, positie from table order by date desc"; $result = mysql_query($sql,$connect) or die(mysql_error()); echo "<table>"; while($row=mysql_fetch_array($result)){ echo "<tr><td>"; echo $row["date"] . "</td><td>" . $row["positie"]; echo "</td></tr>\n"; } echo "</table>"; |
Nu moet er dus achter de $row["positie"] de relative positie worden getoont.
Nu kan ik wel in de while lus weer een connectie maken met mysql en de positie ophalen van de dag ervoor en hem zo gaan berekeken.
Maar dat zie ik niet zo zitten, aangezien er namelijk nogal wat rijen in de db staan (nu 200, maar dat worden er iedere dag meer) en omdat ik die posities 1 stap verder in de lus zelf al binnenhaal.
Als de sql statment anders gesorteerd was, dan krijg ik de oudste datums eerst in de while lus, dan zou het vrijmakkelijk kunnen omdat je dan de huidige positie meegeeft aan de volgende stap van de lus:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| $sql = "select date, positie from table order by date"; $result = mysql_query($sql,$connect) or die(mysql_error()); echo "<table>"; while($row=mysql_fetch_array($result)){ $relatief = $row["positie"] - $gister; echo "<tr><td>"; echo $row["date"] . "</td><td>" . $row["positie"] . "</td><td>" . $relatief; echo "</td></tr>\n"; $gister = $row["positie"] } echo "</table>"; |
Maarja, zo wil ik het dus niet hebben staan op mijn website
Daarom dacht ik dat er misschien een slimmere oplossing voor was. Misschien kan iemand me over dit soort onderwerpen iets bijleren.
...