Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Terminarz piłkarski - operację na kilku tabelach (
Forum PHP.pl > Forum > Przedszkole
artur81
Witam!
Na początku przepraszam za długi wątek, ale chcę to załatwić za jednym razem żeby niepotrzebnie nie przeciągać. Robię stronę drużyny piłkarskiej, a obecnie możliwość edycji kolejek ligi piłkarskiej. Po zalogowaniu użytkownik zostaje przekierowany na stronę na której to znajduje się 30 linków, do każdego dołączam numer kolejki (jest to zarazem nazwa tabeli w bazie danych), tak jak poniżej ((fragment)
Kod
<tr>
    <td><div align="center"><font size="+2"><a href="update_terminarz.php?kolejka=2kolejka">2
        kolejka</a></font></div></td>
    <td><div align="center"><font size="+2"><a href="update_terminarz.php?kolejka=17kolejka">17
        kolejka</a></font></div></td>
  </tr>

Jak już sobie odbiorę te dane po drugiej stronie, tam chciałbym mieć mozliwość usuwania, edycji, dodawania meczy w danej kolejce której numer przekazałemza pomocą GET.
I tak, mam plik update_terminarz.php wyświetlający dane meczy które już dodałem i pozwalający na dodanie nowego
  1. <?php
  2. //session_start();
  3. //Jeżeli nie ma ustanowionej sesji przekierowuję użytkownika do logowania
  4. //if (!isset($_SESSION['login'])) {
  5. // ob_end_clean();
  6. // header ("Location: http://localhost/unia/logowanie_terminarz.php")//
  7. // exit ();
  8.  //  } else {
  9.  
  10.  
  11.  
  12. require_once('./polacz_z_baza_terminarz.php');
  13. $kolejka=$_GET['kolejka'];
  14. echo $kolejka;
  15. $wynik = mysql_query ("SELECT * FROM $kolejka") or die (mysql_error());
  16. print "<table cellpadding=5 border=0>";
  17. print "<tr><td align =center bgcolor=#00CCFF><b>Id</b></td><td align =center bgcolor=#00CCFF><b>Herb</b></td>";
  18. print "<td align =center bgcolor=#00CCFF><b>Gospodarze</b></td><td align =center bgcolor=#00CCFF><b>Bramki gospodarzy</b></td>";
  19. print "<td align =center bgcolor=#00CCFF><b>Bramki goœci</b></td><td align =center bgcolor=#00CCFF><b>Goœcie</b></td>";
  20. print "<td align =center bgcolor=#00CCFF><b>Herb</b></td></tr>n";
  21.  
  22. while ($rekord = mysql_fetch_array ($wynik)) { //tutaj wyswietlam wyniki w tabeli , do kazdego rekordu dodajšc
  23. $id = $rekord[0]; // opcje :skasuj, edytuj
  24. $gospodarze = $rekord[1];
  25. $bramki_gospodarzy = $rekord[2];
  26. $bramki_gosci = $rekord[3];
  27. $goscie = $rekord[4];
  28. $herb_gospodarzy = $rekord[5];
  29. $herb_gosci = $rekord[6];
  30.  
  31. print "<tr><td align =center bgcolor=#BEE4F3><font size =-1>$id</font></td><td align =center bgcolor=#71DEE3><font size =-1><img src="http://www.dyjas82.bluepointpolska.com/herby/$herb_gospodarzy"></font></td><td align =center bgcolor=#BEE4F3><font size =-1>$gospodarze</font></td><td align =center bgcolor=#BEE4F3><font size =-1>$bramki_gospodarzy</font></td><td align =center bgcolor=#BEE4F3><font size =-1>$bramki_gosci</font></td><td align =center bgcolor=#71DEE3><font size =-1>$goscie</font></td><td align =center bgcolor=#71DEE3><font size =-1><img src="http://www.dyjas82.bluepointpolska.com/herby/$herb_gosci"></font></td><td>";
  32. print "<A HREF = "action_terminarz.php?akcja=skasuj&id=$id&kolejka=$kolejka"><font size =-1 font color = black>SKASUJ</font></A></td><td>";
  33. print "<A HREF = "action_terminarz.php?akcja=edytuj&id=$id&kolejka=$kolejka"><font size =-1 font color = black>EDYTUJ</font></A></td></tr>n";
  34. }
  35. print "</table>";
  36. $nazwy_druzyn= array( 1=> 'MKS Unia Skierniewice', 'MZKS Kozienice', 'Ceramika Paradyż', 'Pelikan Łowicz', 'Mazowsze Grójec', 'Gosso Stal Głowno',
  37. 'Jeziorak Iława', 'Mlekovita Wysokie Mazowieckie', 'Wigry Suwałki', 'Znicz Pruszków', 'Dolcan Zšbki', 'Legia II Warszawa', 'ŁKS Łomża', 'MKS Mława',
  38. 'Hurtap Górnik Łęczyca', 'RKS Radomsko');
  39. $herby = array( 1=> 'skierniewice.jpg', 'kozienice.jpg', 'paradyz.jpg', 'lowicz.jpg', 'grojec.jpg', 'glowno.jpg',
  40. 'ilawa.jpg', 'wysokiemazowieckie.jpg', 'suwalki.jpg', 'pruszkow.jpg', 'zabki.jpg', 'warszawa.jpg', 'lomza.jpg', 'mlawa.jpg',
  41. 'leczyca.jpg', 'radomsko.jpg');
  42.  
  43.  
  44.  
  45. print '<p align = "center">';
  46. print '<form method="GET" action="action_terminarz.php"><font size =-1>Nowy mecz:</font>'; //formularz dodawania nowego meczu
  47. print '<input type = "hidden" name="akcja" value="dodaj">'; // samo dodawanie odbywa sie w pliku action_terminarz.php
  48. print '<input type = "hidden" name="id" value=""><input type = "hidden" name="kolejka" value="$kolejka"><table>';
  49. print '<tr><td><font size =-1>Herb gospodarzy</font></td><td>';
  50. print '<select name="herb_gospodarzy">'; //herb gospodarzy lista rozwijana
  51. foreach ($herby as $key => $value)
  52.  { echo "<option value="$key">$value</option>n"; }
  53.  echo '</select>';
  54. print '</td></tr>';
  55. print '<tr><td><font size =-1>Gospodarze<font></td><td>';
  56. print '<select name="gospodarze">'; //nazwy druzyn - gospodarze - lista rozwijana
  57. foreach ($nazwy_druzyn as $key => $value)
  58.  { echo "<option value="$key">$value</option>n"; }
  59.  echo '</select>';
  60. print '</td></tr>';
  61. print '<tr><td><font size =-1>Bramki gospodarzy</font></td><td><input type = "text" name="bramki_gospodarzy"></td></tr>';//bramki gosp.
  62. print '<tr><td><font size =-1>Bramki goœci</font></td><td><input type = "text" name="bramki_gosci"></td></tr>';//bramki gosci
  63. print '<tr><td><font size =-1>Goœcie<font></td><td>';
  64. print '<select name="goscie">';// nazwy druzyn - goscie - lista rozwijana
  65. foreach ($nazwy_druzyn as $key => $value)
  66.  { echo "<option value="$key">$value</option>n"; }
  67.  echo '</select>';
  68. print '</td></tr>';
  69.  
  70. print '<tr><td><font size =-1>Herb gosci</font></td><td>'; //herby gosci - lista rozwijana
  71. print '<select name="herb_gosci">';
  72. foreach ($herby as $key => $value)
  73.  { echo "<option value="$key">$value</option>n"; }
  74.  echo '</select>';
  75. print '</td></tr>';
  76.  
  77. print '</table><input type="submit" value="Dodaj nowy mecz" ></form></p>'; //koniec formularza
  78. //}
  79. //print '<body bgcolor = #CCFFCC>';
  80. ?>

Tutaj pojawia mi się błąd że mysql_fetch_array nie jest valid mysql resource. Wiem o co chodzi, ale nie wiem jak to poprawić w tym przypadku...
kolejne dwa pliki zawierające kody odpowiedzialne za kasowanie, edycję i dodawanie.
action_terminarz.php
  1. <?php
  2. require_once('./polacz_z_baza_terminarz.php');
  3.  
  4. $akcja=$_GET['akcja'];
  5. $kolejka=$_GET['kolejka'];
  6. if ($akcja == 'dodaj') {
  7.  
  8.  
  9. $id = $_GET['id'];
  10. $kolejka=$_GET['kolejka'];
  11. $gospodarze = $_GET['gospodarze'];
  12. $bramki_gospodarzy = $_GET['bramki_gospodarzy'];
  13. $bramki_gosci = $_GET['bramki_gosci'];
  14. $goscie = $_GET['goscie'];
  15. $herb_gospodarzy = $_GET['herb_gospodarzy'];
  16. $herb_gosci =$_GET['herb_gosci'];
  17. // dodawanie wiersza do tabeli
  18. if ($gospodarze && $bramki_gospodarzy && $bramki_gosci && $goscie && $herb_gospodarzy && $herb_gosci) {
  19. $zapytanie = "INSERT INTO $kolejka (id, gospodarze, bramki_gospodarzy, bramki_gosci, goscie, herb_gospodarzy, h
    erb_gosci) VALUES ('', '$gospodarze' , '$bramki_gospodarzy', '$bramki_gosci', '$goscie', '$herb_gospodarzy', '$herb_gosci')"
    ;
  20. $wynik = mysql_query ($zapytanie);
  21. }
  22. print "<div align = center><h3>Dodanie nowego meczu zakończone powodzeniem!!!</h3><br>Klinkij na link, aby dodać &nbsp<a href="update_terminarz.php&kolejka=$kolejka">nowy mecz</a>.<div>";
  23. } elseif ($akcja == 'edytuj') {
  24.  $kolejka=$_GET['kolejka'];
  25. $id=$_GET['id'];
  26. $zapytanie = "SELECT * FROM $kolejka WHERE id='$id' and kolejka='$kolejka'";
  27. $wynik = mysql_query ($zapytanie);
  28. $rekord = mysql_fetch_array ($wynik);
  29. $id = $rekord[0];
  30. $gospodarze = $rekord[1];
  31. $bramki_gospodarzy = $rekord[2];
  32. $bramki_gosci = $rekord[3];
  33. $goscie = $rekord[4];
  34. $herb_gospodarzy = $rekord[5];
  35. $herb_gosci = $rekord[6];
  36. print '<form method = "post" action="popraw_terminarz.php"> Poprawa meczu:';
  37. print '<input type = "hidden" name="akcja" value="popraw">';
  38. print '<input type = "hidden" name="id" value="'.$id.'"><input type = "hidden" name="kolejka" value="'.$kolejka.'"><table width="700" border=0>';
  39. print '<tr><td>Gospodarze</td><td><input type = "text" name="gospodarze" value="'.$gospodarze.'" size="100"></td></tr>';
  40. print '<tr><td>Bramki gospodarzy</td><td><input type = "text" name="bramki_gospodarzy" value="'.$bramki_gospodarzy.'" size="40"></td></tr>';
  41. print '<tr><td>Bramki goœci:</td><td><input type = "text" name="bramki_gosci" value="'.$bramki_gosci.'" size="40"></td></tr>';
  42. print '<tr><td>Goœcie:</td><td><input type = "text" name="goscie" value="'.$goscie.'" size="40"></td></tr>';
  43. print '<tr><td>Herb gospodarzy:</td><td><input type = "text" name="herb_gospodarzy" value="'.$herb_gospodarzy.'" size="40"></td></tr>';
  44. print '<tr><td>Herb goœci:</td><td><input type = "text" name="herb_gosci" value="'.$herb_gosci.'" size="40"></td></tr>';
  45. print '</table><input type="submit" value="Popraw dane"></form>';
  46. }
  47. elseif ($akcja == 'skasuj') {
  48. $id=$_GET['id'];
  49. $wynik =mysql_query ("DELETE FROM $kolejka WHERE id='$id' and kolejka='$kolejka';");
  50. print '<div align = center>';
  51. print '<h3>Skasowanie meczu zakończone powodzeniem!</h3><br>Klinkij na link, aby przejœć do &nbsp<a href="update.php">menu meczów</a>.</div>';
  52. }
  53.  
  54. ?>

popraw_terminarz.php
  1. <?php
  2. require_once('./polacz_z_baza_newsow.php');
  3.  
  4. $akcja=$_POST['akcja'];
  5. $id=$_POST['id'];
  6. $kolejka=$_POST['kolejka'];
  7. $gospodarze=$_POST['gospodarze'];
  8. $goscie=$_POST['goscie'];
  9. $bramki_gospodarzy=$_POST['bramki_gospodarzy'];
  10.  
  11. $bramki_gosci=$_POST['bramki_gosci'];
  12. $herb_gosci=$_POST['herb_gosci'];
  13. $herb_gospodarzy=$_POST['herb_gospodarzy'];
  14.  
  15.  
  16. if ($akcja == 'popraw') { // poprawianie
  17.  if ($gospodarze && $goscie && $bramki_gospodarzy && $bramki_gosci && $herb_gospodarzy && $herb_gosci) {
  18. $zapytanie = "UPDATE $kolejka SET gospodarze='$gospodarze', goscie='$goscie', bramki_gospodarzy='$bramki_gospodarzy', bramki_gosci='$bramki_gosci', herb_gospodarzy='$herb_gospodarzy', herb_gosci='$herb_gosci' WHERE id='$id' and kolejka='$kolejka'";
  19. $wynik = mysql_query ($zapytanie);
  20.  }
  21. }
  22. print '<div align = center>';
  23. print '<h3>Edycja meczu zakończona powodzeniem!</h3><br>Klinkij na link, aby przejść do &nbsp<a href="update.php">menu meczów.</a></div>';
  24.  
  25. ?>


Fragment bazy SQL:
  1. Struktura tabeli dla `10kolejka`
  2. #
  3.  
  4. CREATE TABLE `10kolejka` (
  5. `id` tinyint(4) NOT NULL AUTO_INCREMENT,
  6. `gospodarze` text NOT NULL,
  7. `bramki_gospodarzy` tinyint(4) NOT NULL DEFAULT '0',
  8. `bramki_gosci` tinyint(4) NOT NULL DEFAULT '0',
  9. `goscie` text NOT NULL,
  10. `herb_gospodarzy` text NOT NULL,
  11. `herb_gosci` text NOT NULL,
  12. `termin` text NOT NULL,
  13. UNIQUE KEY `id` (`id`)
  14. ) TYPE=MyISAM AUTO_INCREMENT=1 ;
  15.  
  16. #
  17. # Zrzut danych tabeli `10kolejka`
  18. #


To by było na tyle, mam nadzieję że znajdzie się ktoś kto pokaże mi gdzie robię błąd, wydaje mi się że problem tkwi w przekazywaniu getem numeru kolejki.

2 . pytanie.
Tak mi przyszło do głowy... Niedługo zapewne stanę przed napisaniem tabeli wyników ligi w której gra druzyna której stronę robię. Z tabela sobie poradzę, tylko tak się zastanawiam, jak już sobie posortuję order by punkty, bilans_bramek. Może się jeszcze zdażyć że mimo takiego posortowania 2 druzyny bedą miały taką sama liczbę punktów i stosunek bramek. Jak wtedy zrobic oś takiego żeby dane w tabeli wysiwetliły mi się jak niżej
____________________________________
nr | nazwa druzyny | punkty | stos.bramek |
____________________________________
1 | druzyna 1 | 30 | +10 |
____________________________________
2 | druzyna 2 | 28 | +8 |
____________________________________
3 |druzyna 3 |25 | +5 |
|_________________________________
|druzyna 4 |25 | +5 |
___________________________________
5 | druzyna 5 |20 | +5 |

Chyba widać o co chodz, jeśli 2 druzyny mają takie same liczby punktów i bramek wtedy są wyświetlane na jednym miejscu , a następna druzyna jest wyświetlana z miejscem zwiększonym o jeden, dwa, trzy, w zależności od tego ile drużyn będzie na jednym miejscu. Jak zapisać taki kod??
nospor
No stary. Twój topic jest dla wytrwałych biggrin.gif
Czasami lepiej jest wyodrębnić tylko to co potrzebne, a szybciej ktoś ci pomoże.

PIszesz że masz bląd w mysql_fetch_array, ale nie piszesz w którym. full kodu.
zakladam ze przy zapytaniu:
$wynik = mysql_query ("SELECT * FROM $kolejka;");

usun średnik:
$wynik = mysql_query ("SELECT * FROM $kolejka");
a powinno pomoc.
pozatym daj se echo $kolejka; i zobacz czy oby napewno jest tam to co trzeba

dodaj jeszcze:
$wynik = mysql_query ("SELECT * FROM $kolejka") or die (mysql_error());
artur81
ok, tamto poprawiłem, ale nie w tym jest problem, patrzylem "echem" zmienna z kolejką przechodzi, wyswietla sie formularz dodawania nowego meczu. Wypełniam go, pojawia się ze zostal dodany i jesli chce dodać nowy zeby wcisnać link. Wciskam i tutaj nie mogę wrócić bo pokazuje The requested URL /unia/update_terminarz.php&kolejka=$kolejka was not found on this server - w pliku action_terminarz.php linie 27,28, coś chyba zwaliłem z cudzysłowami ,ale wydaje mi się że skoro daję w cudzysłowiu to powinno sobie podstawić zmienną. Pozatym mimo iz pisze że dodało wcale nie dodaje sad.gif Sprawdzałem, jeszcza raz sobie wszedlem na update.php z getem przekazalem kolejke 4 bo na tej robilem oststnio operacje i nie dziala
mysql_fetch_array pojawial sie w pliku update.php, czyli tam gdzie mówiłes
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.