Pobieranie rekordu życiowego skoczka do tabeli "record"

0

Witam, czy jest możliwe z tego kodu zrobić tak, aby do tabeli "jumpers" i kolumny w niej "record" , pobierało i zapisywało aktualny rekord życiowy skoczka? Bo sam nie wiem jak się za to zabrać :) https://world-skimanager.pl/skoczek.php?id=693 , kolumne "record" mam u każdego zawodnika pustą, bo jest tylko obecnie do ręcznego wpisywania rekordu życiowego, a chciałbym to zautomatyzować tylko nie wiem jak. Pozdrawiam.

<td class="trow2"><strong> Rekord życiowy </strong></td>

					<td class="trow2"> <?php
					
						$s1 = $db->query("select id, championships_id, max(meters_s1) from championships_results where jumper_id = {$_GET['id']}");
						
						$s1 = mysqli_fetch_assoc($s1);
					
						
						$s2 = $db->query("select id, championships_id, max(meters_s2) from championships_results where jumper_id = {$_GET['id']}");
						$s2 = mysqli_fetch_assoc($s2);
					
						if($s1 && $s2) {
							$sone = $s1['max(meters_s1)'];
							$stwo = $s2['max(meters_s2)'];
							if($sone > stwo) {
								
								echo $sone. ' m ';

								$query = $db->query("select * from championships where id = {$s1['championships_id']}");
								
								$query = mysqli_fetch_assoc($query);
								$hill = $db->query("select * from hills where id = {$query['hill']}");
								$hill = mysqli_fetch_assoc($hill);
								echo $hill['name']; 
			
							} else {

								
							echo $stwo. ' m';

							$query = $db->query("select * from championships where id = {$s2['championships_id']}");
								$query = mysqli_fetch_assoc($query);

								$hill = $db->query("select * from hills where id = {$query['hill']}");
								$hill = mysqli_fetch_assoc($hill);
								echo $hill['name'];
								
								
							}
						}
					
						
						$s2 = mysqli_fetch_assoc($s2);
						?>
0

Hehe :) odpowiem na pytanie: Tak, jest to możliwe.

Jeśli liczysz na rozwiązanie techniczne, to nie wiem w czym tkwi problem techniczny. Zadałeś tylko jedno pytanie :)

Jeśli liczysz, że ktoś Ci pomoże, a raczej zrobi za Ciebie - to jest dział https://4programmers.net/Forum/Og%C5%82oszenia_drobne - tam za drobną opłatą ktoś to wykona (np. ja).

0

Ok, rozumiem, bo dopiero początkuje w PHP i chciałem sam spróbować to zrobić ale nie wiem jak się za to zabrać. Z wyświetlaniem skoczków z bazy nie mam problemu z danej narodowości. Problem pojawia się przy obliczaniu tego rekordu na podstawie wyników z bazy i danych tabel odpowiedzialnych za wyniki zawodów.
Tzn mam obliczony przy danym skoczku, ale chciałbym do kolumny "record" go zapisać w tabeli "jumpers" i nadpisywać w razie potrzeby automatycznie.

0

Najpierw popraw zapytania, bo masz źle - zadziałają tylko na MySQL i to chyba nikt nie wie jak.
select id, championships_id, max(meters_s1) from championships_results where jumper_id = {$_GET['id']}
Nie wiem, jak powinno być. Ale jeśli masz MAX, to musisz użyć GROUP BY.

0

Warto było by zastanowic sie nad celowoscia tego rozwiązania. Zamierzasz dublować dane w bazie - pytanie po co. To miało by sens gdyby ich wyciaganie miało zając wieki. Ale raczej tak nie jest. Więc zamiast denormalizować bazę, może warto jednak obsłuzyc automatyczne wypełnianie tego pola na podstawie wpisów w championships_results. Mozna to zrobić bardziej elegancko w osobnej funkcji php - - ostatecznie w sql ale tego nie rób :). Btw - sprawdzaj i waliduj co przychodzi w GET, jak równiez to co wyciągasz a bazy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1