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
<?php
//session_start();
//Jeżeli nie ma ustanowionej sesji przekierowuję użytkownika do logowania
//if (!isset($_SESSION['login'])) {
// ob_end_clean();
// header ("Location: http://localhost/unia/logowanie_terminarz.php")//
// exit ();
// } else {
require_once('./polacz_z_baza_terminarz.php');
$kolejka=$_GET['kolejka'];
print "<table cellpadding=5 border=0>"; print "<tr><td align =center bgcolor=#00CCFF><b>Id</b></td><td align =center bgcolor=#00CCFF><b>Herb</b></td>"; print "<td align =center bgcolor=#00CCFF><b>Gospodarze</b></td><td align =center bgcolor=#00CCFF><b>Bramki gospodarzy</b></td>"; print "<td align =center bgcolor=#00CCFF><b>Bramki goœci</b></td><td align =center bgcolor=#00CCFF><b>Goœcie</b></td>"; print "<td align =center bgcolor=#00CCFF><b>Herb</b></td></tr>n";
while ($rekord = mysql_fetch_array ($wynik)) { //tutaj wyswietlam wyniki w tabeli , do kazdego rekordu dodajšc $id = $rekord[0]; // opcje :skasuj, edytuj
$gospodarze = $rekord[1];
$bramki_gospodarzy = $rekord[2];
$bramki_gosci = $rekord[3];
$goscie = $rekord[4];
$herb_gospodarzy = $rekord[5];
$herb_gosci = $rekord[6];
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>"; print "<A HREF = "action_terminarz
.php?akcja
=skasuj
&id
=$id&kolejka
=$kolejka"><font size =-1 font color = black>SKASUJ</font></A></td><td>"; print "<A HREF = "action_terminarz
.php?akcja
=edytuj
&id
=$id&kolejka
=$kolejka"><font size =-1 font color = black>EDYTUJ</font></A></td></tr>n"; }
$nazwy_druzyn= array( 1=> 'MKS Unia Skierniewice', 'MZKS Kozienice', 'Ceramika Paradyż', 'Pelikan Łowicz', 'Mazowsze Grójec', 'Gosso Stal Głowno', 'Jeziorak Iława', 'Mlekovita Wysokie Mazowieckie', 'Wigry Suwałki', 'Znicz Pruszków', 'Dolcan Zšbki', 'Legia II Warszawa', 'ŁKS Łomża', 'MKS Mława',
'Hurtap Górnik Łęczyca', 'RKS Radomsko');
$herby = array( 1=> 'skierniewice.jpg', 'kozienice.jpg', 'paradyz.jpg', 'lowicz.jpg', 'grojec.jpg', 'glowno.jpg', 'ilawa.jpg', 'wysokiemazowieckie.jpg', 'suwalki.jpg', 'pruszkow.jpg', 'zabki.jpg', 'warszawa.jpg', 'lomza.jpg', 'mlawa.jpg',
'leczyca.jpg', 'radomsko.jpg');
print '<p align = "center">'; print '<form method="GET" action="action_terminarz.php"><font size =-1>Nowy mecz:</font>'; //formularz dodawania nowego meczu print '<input type = "hidden" name="akcja" value="dodaj">'; // samo dodawanie odbywa sie w pliku action_terminarz.php print '<input type = "hidden" name="id" value=""><input type = "hidden" name="kolejka" value="$kolejka"><table>'; print '<tr><td><font size =-1>Herb gospodarzy</font></td><td>'; print '<select name="herb_gospodarzy">'; //herb gospodarzy lista rozwijana foreach ($herby as $key => $value)
{ echo "<option value="$key">$value</option>n"; } print '<tr><td><font size =-1>Gospodarze<font></td><td>'; print '<select name="gospodarze">'; //nazwy druzyn - gospodarze - lista rozwijana foreach ($nazwy_druzyn as $key => $value)
{ echo "<option value="$key">$value</option>n"; } print '<tr><td><font size =-1>Bramki gospodarzy</font></td><td><input type = "text" name="bramki_gospodarzy"></td></tr>';//bramki gosp. print '<tr><td><font size =-1>Bramki goœci</font></td><td><input type = "text" name="bramki_gosci"></td></tr>';//bramki gosci print '<tr><td><font size =-1>Goœcie<font></td><td>'; print '<select name="goscie">';// nazwy druzyn - goscie - lista rozwijana foreach ($nazwy_druzyn as $key => $value)
{ echo "<option value="$key">$value</option>n"; }
print '<tr><td><font size =-1>Herb gosci</font></td><td>'; //herby gosci - lista rozwijana print '<select name="herb_gosci">'; foreach ($herby as $key => $value)
{ echo "<option value="$key">$value</option>n"; }
print '</table><input type="submit" value="Dodaj nowy mecz" ></form></p>'; //koniec formularza //}
//print '<body bgcolor = #CCFFCC>';
?>
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
<?php
require_once('./polacz_z_baza_terminarz.php');
$akcja=$_GET['akcja'];
$kolejka=$_GET['kolejka'];
if ($akcja == 'dodaj') {
$id = $_GET['id'];
$kolejka=$_GET['kolejka'];
$gospodarze = $_GET['gospodarze'];
$bramki_gospodarzy = $_GET['bramki_gospodarzy'];
$bramki_gosci = $_GET['bramki_gosci'];
$goscie = $_GET['goscie'];
$herb_gospodarzy = $_GET['herb_gospodarzy'];
$herb_gosci =$_GET['herb_gosci'];
// dodawanie wiersza do tabeli
if ($gospodarze && $bramki_gospodarzy && $bramki_gosci && $goscie && $herb_gospodarzy && $herb_gosci) {
$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')";
}
print "<div align = center><h3>Dodanie nowego meczu zakończone powodzeniem!!!</h3><br>Klinkij na link, aby dodać  <a href="update_terminarz
.php
&kolejka
=$kolejka">nowy mecz</a>.<div>"; } elseif ($akcja == 'edytuj') {
$kolejka=$_GET['kolejka'];
$id=$_GET['id'];
$zapytanie = "SELECT * FROM $kolejka WHERE id='$id' and kolejka='$kolejka'";
$id = $rekord[0];
$gospodarze = $rekord[1];
$bramki_gospodarzy = $rekord[2];
$bramki_gosci = $rekord[3];
$goscie = $rekord[4];
$herb_gospodarzy = $rekord[5];
$herb_gosci = $rekord[6];
print '<form method = "post" action="popraw_terminarz.php"> Poprawa meczu:'; print '<input type = "hidden" name="akcja" value="popraw">'; print '<input type = "hidden" name="id" value="'.$id.'"><input type = "hidden" name="kolejka" value="'.$kolejka.'"><table width="700" border=0>'; print '<tr><td>Gospodarze</td><td><input type = "text" name="gospodarze" value="'.$gospodarze.'" size="100"></td></tr>'; print '<tr><td>Bramki gospodarzy</td><td><input type = "text" name="bramki_gospodarzy" value="'.$bramki_gospodarzy.'" size="40"></td></tr>'; print '<tr><td>Bramki goœci:</td><td><input type = "text" name="bramki_gosci" value="'.$bramki_gosci.'" size="40"></td></tr>'; print '<tr><td>Goœcie:</td><td><input type = "text" name="goscie" value="'.$goscie.'" size="40"></td></tr>'; print '<tr><td>Herb gospodarzy:</td><td><input type = "text" name="herb_gospodarzy" value="'.$herb_gospodarzy.'" size="40"></td></tr>'; print '<tr><td>Herb goœci:</td><td><input type = "text" name="herb_gosci" value="'.$herb_gosci.'" size="40"></td></tr>'; print '</table><input type="submit" value="Popraw dane"></form>'; }
elseif ($akcja == 'skasuj') {
$id=$_GET['id'];
$wynik =mysql_query ("DELETE FROM $kolejka WHERE id='$id' and kolejka='$kolejka';"); print '<div align = center>'; print '<h3>Skasowanie meczu zakończone powodzeniem!</h3><br>Klinkij na link, aby przejœć do  <a href="update.php">menu meczów</a>.</div>'; }
?>
popraw_terminarz.php
<?php
require_once('./polacz_z_baza_newsow.php');
$akcja=$_POST['akcja'];
$id=$_POST['id'];
$kolejka=$_POST['kolejka'];
$gospodarze=$_POST['gospodarze'];
$goscie=$_POST['goscie'];
$bramki_gospodarzy=$_POST['bramki_gospodarzy'];
$bramki_gosci=$_POST['bramki_gosci'];
$herb_gosci=$_POST['herb_gosci'];
$herb_gospodarzy=$_POST['herb_gospodarzy'];
if ($akcja == 'popraw') { // poprawianie
if ($gospodarze && $goscie && $bramki_gospodarzy && $bramki_gosci && $herb_gospodarzy && $herb_gosci) {
$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'";
}
}
print '<div align = center>'; print '<h3>Edycja meczu zakończona powodzeniem!</h3><br>Klinkij na link, aby przejść do  <a href="update.php">menu meczów.</a></div>';
?>
Fragment bazy SQL:
Struktura tabeli dla `10kolejka`
#
CREATE TABLE `10kolejka` (
`id` tinyint(4) NOT NULL AUTO_INCREMENT,
`gospodarze` text NOT NULL,
`bramki_gospodarzy` tinyint(4) NOT NULL DEFAULT '0',
`bramki_gosci` tinyint(4) NOT NULL DEFAULT '0',
`goscie` text NOT NULL,
`herb_gospodarzy` text NOT NULL,
`herb_gosci` text NOT NULL,
`termin` text NOT NULL,
UNIQUE KEY `id` (`id`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;
#
# Zrzut danych tabeli `10kolejka`
#
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??
Ten post edytował artur81 25.08.2005, 09:32:34