Sortowanie tabeli według różnicy

Odpowiedz Nowy wątek
2018-05-16 10:41
caramba
0

Witajcie. Jak można posortować tabele według różnicy dwóch rekordów chodzi mi że mamy np. pierwsze sortowanie według punktów no i drugi warunek przy równej ilości punktów który chce uzyskać, czyli różnica setów wygranych i setów przegranych

.....
$result = $conn->prepare("SELECT * FROM tabelatestowa ORDER BY pkt DESC");
....
<td><label><?php echo $row['club_name']; ?></label></td>
<td><label><?php echo $row['games']; ?></label></td>
<td><label><?php echo $row['pkt']; ?></label></td>
<td><label><?php echo $row['set_wyg'];?> : <?php echo $row['set_prze'];?></label></td>
.....

Pozostało 580 znaków

2018-05-16 11:16
1
ORDER BY
  foo ASC,
  (bar - foo) DESC

Pozostało 580 znaków

2018-05-16 14:28
caramba
0

Dzięki Wielkie :) Mam jeszcze jedną prośbę jak teraz powinna wyglądać druga baza by móc zacząć robić jakikolwiek update.

czyli pierwsza aktualna baza:
id_club
name_club
game
points
set_win
set_lost

druga baza (mecze)
id_game (czyli wszystkie mecze przy 3 drużynach 6 meczy)
score_home
score_away

Mógłby ktoś pomóc to złożyć by to miało ręce i nogi ?

Pozostało 580 znaków

2018-05-16 14:45
0

Niestety Twój opis jest dosyć enigmatyczny - mógłbyś spróbować opisać to w inny sposób?


Pozostało 580 znaków

2018-05-16 17:35
caramba
0

Chodzi mi o robienie update bazy po każdej kolejce. tak by dopisując wynik tabelka sama się podliczała. Dlatego najpierw próbuję sklecić do porządku strukturę bazy danych czyli drugą tabelkę (o ile idę dobrym torem) nazwijmy ją np terminarz i tu zaczynają się schody.

Wiem że każdy mecz musi mieć osobne id co do tego tylko jestem pewien. potrzebuję wyświetlić dwa kluby oraz wynik i tu nie wiem jak to dokładnie poskładać z wyróżnieniem na gospodarza i gościa by szło na dalszym etapie sortować według meczy bezpośrednich(w tym bramki na wyjeździe) Przede wszystkim chce złożyć o takie wytyczne strukturę bazy by już w niej nie dłubać a zająć się PHP. Jakby ktoś mógł pomóc poskładać właśnie samą strukturę.

Pozostało 580 znaków

2018-05-16 23:18
0
  1. W osobnej tabeli przechowujesz dane dot. druzyny (id, nazwa, [...])
  2. W osobnej date dot. mecze (id, id gospodarza, id goscia, gole gospodarzy, gole gosci, [...])
  3. W osobnej ligowa tabele (id, id druzyny, mecze, gole zdobyte, gole stracone, pkt, [...])

Automat liczący punkty, sumujący gole to już PHP.
Po dodaniu rekordu o konkretnym spotkaniu automat (pobór danych z bazy dot. drużyn biorących udział w spotkaniu -> obliczenia pkt, goli, itd -> zapis do bazy).

Pozostało 580 znaków

2018-05-17 01:08
caramba
0

W podobny sposób myślałem ale męczy mnie tabela "mecze". Z nią mam największy problem. Czy nie powinienem tam dodać id drużyny? , bo jak będzie wiadomo kto z kim gra? Wydaje mi się że potrzebuje też 4 tabeli

Drużyna (id drużyny, nazwa)
Mecze (id meczu,id drużyny?, id gospodarza, id gościa, gole gospodarzy, gole gości)
Tabela Ligowa (id, id drużyny, mecze, gole zdobyte, gole stracone, pkt,)
Dom Wyjazd (id, id gospodarz, id gość)

Oczywiście można pododawać ilość zwycięstw, daty meczów itd, na teraz to jest zbędne.

Może ma ktoś jakiś link, prosty przykład działania takiego automatu. Szukałem w necie ale znalazłem tak rozbudowane że nie na moją głowę a chodzi mi o coś prostego o zbliżonej strukturze bazy chociaż by jedna dwie rzeczy się zliczała by mieć tylko wyobrażenie o tym

Pozostało 580 znaków

2018-05-17 07:11
0
caramba napisał(a):

Mecze (id meczu,id drużyny?, id gospodarza, id gościa, gole gospodarzy, gole gości)

Przecież masz podane drużyny w id gospodarza i id gościa.. Po co trzeci raz podawać? I kogo chcesz tam wpisać? W meczu udział biorą dwie drużyny.

caramba napisał(a):

Dom Wyjazd (id, id gospodarz, id gość)

A to po co? Przecież już masz to w tabeli Mecze.

caramba napisał(a):

Może ma ktoś jakiś link, prosty przykład działania takiego automatu. Szukałem w necie ale znalazłem tak rozbudowane że nie na moją głowę a chodzi mi o coś prostego o zbliżonej strukturze bazy chociaż by jedna dwie rzeczy się zliczała by mieć tylko wyobrażenie o tym

Ciężko będzie Ci coś takiego idealnego znaleźć. Kombinuj samemu, to najlepszy sposób. Ściągając gotowce niewiele się nauczysz i jeszcze mniej zrozumiesz.

edytowany 2x, ostatnio: Łukasz Mikowski, 2018-05-17 07:12

Pozostało 580 znaków

2018-05-17 10:25
caramba
0

Zaczynam powoli kumać układać to w głowie php. Najgorszy problem mam mysql. Rozdzieliłem tabele na razie na dwie, idę małymi kroczkami te zapytania to....uff.
Tabele zrobiłem jak radziłeś czyli mamy

club (id_club, name_club)
table (id_table, id_club, games, points, set_win, set_lost)

no właśnie jak teraz wczytać do tabeli name_club. W bazie tabela podałem id_club i ręcznie przypisałem wartość. Jak teraz wyświetlić odpowiadającą id nazwę klubu. w tym momencie jej nie widzi a oto kod:

<?php
            require_once('conect.php');
            $result = $conn->prepare("SELECT * FROM tabela ORDER BY points DESC, (set_win - set_lost) DESC");
            $result->execute();
            $results = $result->fetchAll();
            foreach ($results as $index => $row) {
        ?>          
        <tr>
              <td><label><?php echo ($index + 1);?>  </label></td>
              <td><label><?php echo $row['club_name']; ?></label></td>
              <td><label><?php echo $row['games']; ?></label></td>
              <td><label><?php echo $row['points']; ?></label></td>
              <td><label><?php echo $row['set_win'];?> : <?php echo $row['set_lost'];?></label></td>

Pozostało 580 znaków

2018-05-17 10:43
0

Poczytaj o łączeniu tabel w zapytaniach SQL
Np. https://www.w3schools.com/sql/sql_join.asp

Pozostało 580 znaków

2018-05-17 13:38
caramba
0

Wpisałem coś takiego poniżej ale jeszcze czegoś mi brakuje błędu nie pokazuję ale też nie wyświetla tabeli.

$result = $conn->prepare("SELECT * FROM tabela INNER JOIN clubs ON tabela.id_club = clubs.club_name ORDER BY points DESC, (br_strz - br_str) DESC");
            $result->execute();
            $results = $result->fetchAll();
            foreach ($results as $index => $row)

Również próbowałem dopisać MyAdmin w zakładce SQL :

SELECT * FROM `tabela` INNER JOIN `clubs` ON `tabela`.id_club = `clubs`.club_name 

Kliknąłem "Wykonaj", pokazuje że dobrze ale nic się nie dzieje, bez tych apostrofów też próbowałem

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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