Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Tabela piłkarska php mysql
Forum PHP.pl > Forum > PHP
shnelock
Witam.

Mam w bazie danych tabelę z wynikami piłkarskimi (terminarzem) i chciałbym stworzyć prawdziwą Tabelę ligi piłkarskiej na stronie internetowej, która będzie się tworzyła po analizie wyników piłkarskim. Za każde zwycięstwo są 3 punkty, za remis 1 pkt, za porażkę 0 pkt. Chciałbym żeby php/mysql zliczał mi ilość punktów, wygranych, remisów, porażek, bramek strzelonych, straconych raz bilans i na podstawie tych danych dawał odpowiednie miejsce drużynie w tabeli. Więcej o mojej bazie oraz jak ma wyglądać tabela na screenach.




Tomplus
I w czym problem?
Chyba nie myślisz że zrobimy skrypt za ciebie?

Jak masz bazę z wynikami to możesz sam zrobić, mniej więcej tak.

Kod
pętla_z bazy {
  if (gole_gosp>gole_gosc)
  {
    Zespol[ID_gosp] += 3
    Zespol[ID_gosc] += 0
  }
  //reszta analogicznie
}

array_multisort(Zespol)
pętla Zespolow {
  // drukuje tabele.
}


array_multisort
shnelock
Pomyślałem trochę i stworzyłem tabelę w bazie danych o nazwie Tabela.

W niej są kolumny: id_druzyny, punkty.

Teraz napisałem, żeby mi analizowało ifami wyniki w tabeli Wyniki, wyszło coś mniej więcej tak (narazie samych wygranych szuka):

<?php
$user='xxx';
$pass='xxxx';
$db='xxxxx';
$host='localhost';
$con=@new mysqli($host, $user, $pass, $db);
mysqli_query( $con, 'SET NAMES "utf8" COLLATE "utf8_general_ci"' );
if(mysqli_connect_errno()!=0){
echo 'Błąd połączenia z bazą!: '.mysqli_connect_error();
}
else {
$result=$con->query('SELECT * from wyniki;');
if($result === false){
echo 'Zapytanie nie zostało wykonane poprawnie';
}
else {
while(($plr=$result->fetch_assoc())!==NULL){

$druzynaa=$plr['druzynaa'];
$druzynab=$plr['druzynab'];

if($plr['gole_druzynya']>$plr['gole_druzynyb'])
{
$pkt=query('SELECT punkty FROM tabela WHERE id_druzyny="$druzynaa";');
$wynik=query('INSERT INTO tabela (punkty) VALUES ($pkt+3) WHERE id_druzyny="$druzynaa";');
}

}
$result->close();
$con->close();

}

}

?>



Niestety są błędy przy $pkt i $wynik. Nie wiem jak w VALUES dodać 3 punkty do już istniejących punktów. W ogóle jak wywołać te zapytania z $pkt i $wynik...
Tomplus
1. formatuj kod tagiem PHP
2. polecam korzystać PHP Object Data czyli PDO do łączenia z bazą danych.
3. połączenie dołączaj z osobnego pliku, nie musisz nam tego pokazywać
4. wg mnie i pewnie nie tylko nie powinieneś każdej pętli robić dwa zapytania dodatkowe:

  1. $pkt = array();
  2. while(($plr=$result->fetch_assoc())!==NULL) {
  3. $druzynaa=$plr['druzynaa'];
  4. $druzynab=$plr['druzynab'];
  5. if($plr['gole_druzynya']>$plr['gole_druzynyb']) {
  6. $pkt[$plr['druzynaa']] += 3;
  7. } elseif($plr['gole_druzynya']<$plr['gole_druzynyb']) {
  8. $pkt[$plr['druzynab']] += 3;
  9. } else {
  10. $pkt[$plr['druzynaa']] += 1;
  11. $pkt[$plr['druzynab']] += 1;
  12. }
  13. }
  14. $result=$con->query('SELECT * FROM tabela WHERE liga =1;');
  15. while(($team=$result->fetch_assoc())!==NULL) {
  16. $con->query('UPDATE tabela SET punkty = $pkt[$team['id']] WHERE id_druzyny=$team['id'];');
  17. }
shnelock
Cytat(Tomplus @ 3.12.2015, 20:13:59 ) *
1. formatuj kod tagiem PHP
2. polecam korzystać PHP Object Data czyli PDO do łączenia z bazą danych.
3. połączenie dołączaj z osobnego pliku, nie musisz nam tego pokazywać
4. wg mnie i pewnie nie tylko nie powinieneś każdej pętli robić dwa zapytania dodatkowe:

  1. $pkt = array();
  2. while(($plr=$result->fetch_assoc())!==NULL) {
  3. $druzynaa=$plr['druzynaa'];
  4. $druzynab=$plr['druzynab'];
  5. if($plr['gole_druzynya']>$plr['gole_druzynyb']) {
  6. $pkt[$plr['druzynaa']] += 3;
  7. } elseif($plr['gole_druzynya']<$plr['gole_druzynyb']) {
  8. $pkt[$plr['druzynab']] += 3;
  9. } else {
  10. $pkt[$plr['druzynaa']] += 1;
  11. $pkt[$plr['druzynab']] += 1;
  12. }
  13. }
  14. $result=$con->query('SELECT * FROM tabela WHERE liga =1;');
  15. while(($team=$result->fetch_assoc())!==NULL) {
  16. $con->query('UPDATE tabela SET punkty = $pkt[$team['id']] WHERE id_druzyny=$team['id'];');
  17. }



A o co chodzi w linijce:
$con->query('UPDATE tabela SET punkty = $pkt[$team['id']] WHERE id_druzyny=$team['id'];');
}

Co mam zamiast id wstawić?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.