Autor | Zpráva | ||
---|---|---|---|
Anonymní Profil * |
#1 · Zasláno: 22. 3. 2006, 13:09:02
Chystám tabulku s fotbalovými výsledky.
Z formuláře budu mít pomocí $_POST proměnné asi tyto: $tym (název týmu) $score (skóre ve formátu např. 22:12) $body (za výhru 3 atd...) Jak udělat automatické seřazení podle bodů, s přihlédnutím k tomu, že když bude mít více týmů stějně bodů, bude rozhodovat scóre? (góly venku)???? Díky za tip.:) |
||
Anonymní Profil * |
#2 · Zasláno: 22. 3. 2006, 13:12:25
bude rozhodovat scóre? (góly venku)????
Teda góly doma jsem chtěl říct.:) |
||
peta Profil * |
#3 · Zasláno: 22. 3. 2006, 19:49:45
php array_sort() (http://cz2.php.net/array_)
lepe to delat v sql, kdyz mas tabulku v sql. sql je primo delane na praci s tabulkami. |
||
joejoe Profil * |
#4 · Zasláno: 23. 3. 2006, 09:08:54
v sql lze zadat razeni podle druheho klice
ORDER BY `body` DESC,`score_venku` ASC // serazene podle bodu sestupne, v pripade ze se body rovnaji, tak podle sloupce score_venku vzestupne. otazka je jak co nejlepe zvolit strukturu sql tabulek a mit v nich ulozene tyto informace (doporucuju pouzit nejakou kombinaci SUM() GROUP BY) je mozne taky pouzit funkce sort, array_sort, array_multisort s tim, ze si musite overit jakym algrotimem pracuji (hlavne jestli je stabilni = 2. serazeni neovlivni poradi serazenych prvku), nejdriv seradite pole podle poctu golu doma, a potom podle bodu jeste je mozne zkusit implementovat si nejaky vlastni algoritmus - v tom pripade hledejte slova jako "bubble sort", "quick sort", "list merge sort" atd. |
||
Anonymní Profil * |
#5 · Zasláno: 23. 3. 2006, 11:03:35
Díky.:)
|
||
joejoe Profil * |
#6 · Zasláno: 23. 3. 2006, 19:27:46
dneska je tvuj stastny den, zkusil jsem si to implementovat:
http://www.volny.cz/joejoe/download/fotbal.rar |
||
Anonymní Profil * |
#7 · Zasláno: 23. 3. 2006, 19:53:25
Hej, tak to je supééér, díky!:)) Akorát jedna věc k tomu super scriptu, když je tým co nemá ani jeden bod, tak se mu v tabulce nezobrazí 0 (nula), ale prázdný políčko a pak to vypadá blbě, jako by tam jeden colspan přebýval jestli víš co myslím. Jak by to šlo poupravit?
|
||
Anonymní Profil * |
#8 · Zasláno: 23. 3. 2006, 19:58:23
Už jsem na to přišel sám, snad odbře.:)
|
||
Anonymní Profil * |
#9 · Zasláno: 23. 3. 2006, 21:23:09
Hm, píše mi to:
Unknown column 't1.id' in 'on clause' :(( |
||
Anonymní Profil * |
#10 · Zasláno: 23. 3. 2006, 22:10:47
tAK TO UŽ JSEM VYŘEŠIL. aLE V TABULCE MI TO NESEŘAZUJE PODLE BODŮ A CHTĚL BYCH TAM DODAT SLOUPEC UMÍSTĚNÍ.
|
||
Anonymní Profil * |
#11 · Zasláno: 23. 3. 2006, 22:24:40
No, takže tohle mi absolutně nevyhovuje. Mám tři tabulky:
Gold, Silver a Bronz a každá má pořadí 1 - 6. A mám dělat aktualize do každé zvláš´t. Podumám, co si vezmu z tvého scriptu a pokusím se to předělat. Ale i tak samozřejmě díky. |
||
Anonymní Profil * |
#12 · Zasláno: 23. 3. 2006, 23:54:54
Mám to dobře? Nechce mi to nic zapisovat do databáze.
<form action="./admin_tab_off_gold.php" method="post" id="form"> <table border="0" cellpadding="4" cellspacing="0"> <thead> <tr> <th colspan="3">Administrace tabulky GOLD</th> </tr> </thead> <tbody> <tr> <td style="text-align:center;font-size:11px;color:#000000;"><select name="team1"> <? foreach ($teamy as $t) { echo "<option value=\"$t[id_tymu]\">$t[jmeno]</option>"; } ?> </select></td><td>:</td><td style="text-align:center;font-size:11px;color:#000000;"><select name="team2"> <? foreach ($teamy as $t) { echo "<option value=\"$t[id_tymu]\">$t[jmeno]</option>"; } ?> </select></td> </tr> <tr> <td align="center"><input type="text" name="goly1" size="3"/></td><td>:</td><td align="center"><input type="text" name="goly2" size="3"/></td> </tr> <tr> <td align="center" colspan="3"><input type="submit" style="width:120px;background-color:black;color:white;font-weight:bold ;" value="odešli aktualizaci"></td> </tr> </tbody> </table> </form> A sem se to odesílá:
|
||
Anonymní Profil * |
#13 · Zasláno: 23. 3. 2006, 23:55:51
Jo a tabulka gold je taková:
CREATE TABLE `gold` ( `id_tymu` int(11) NOT NULL auto_increment, `jmeno` varchar(32) NOT NULL default '', `goly1` varchar(3) NOT NULL default '', `goly2` varchar(3) NOT NULL default '', PRIMARY KEY (`id_tymu`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1405 ; |
||
Časová prodleva: 2 měsíce
|
|||
Anonymní Profil * |
#14 · Zasláno: 2. 6. 2006, 18:10:54
$dotaz = "SELECT `t1`.`jmeno` as `team1`, `t2`.`jmeno` as `team2`, `zapasy_green`.`goly1`, `zapasy_green`.`goly2` FROM `zapasy_green`"
." LEFT JOIN `green` as t1 ON `t1`.`id_tymu` = `zapasy_green`.`team1`" ." LEFT JOIN `green` as t2 ON `t2`.`id_tymu` = `zapasy_green`.`team2`" ." WHERE `zapasy_green`.`hrano` = 'y'" ; $tab = array(); $result = mysql_query($dotaz) or die(mysql_error()); while($row = mysql_fetch_array($result)) { $t1 = ibynameg($tab, $row['team1']); $tab[$t1]['jmeno'] = $row['team1']; $t2 = ibynameg($tab, $row['team2']); $tab[$t2]['jmeno'] = $row['team2']; if ($row['goly1'] > $row['goly2']) { // vyteztvi teamu 1 $tab[$t1]['body'] += 3; $tab[$t2]['body'] += 0; } else if ($row['goly2'] > $row['goly1']) { // vyteztvi teamu 2 $tab[$t1]['body'] += 0; $tab[$t2]['body'] += 3; } else { // remiza $tab[$t1]['body'] += 1; $tab[$t2]['body'] += 1; } $tab[$t1]['vst_doma'] += $row['goly1']; $tab[$t1]['vst'] += $row['goly1']; $tab[$t2]['vst'] += $row['goly2']; $tab[$t1]['ink'] += $row['goly2']; $tab[$t2]['ink'] += $row['goly1']; } BubbleSortg($tab, 'vst_doma'); BubbleSortg($tab, 'body'); function ibynameg(&$p, $jmeno) { for ($i = 0; $i < sizeof($p); $i++) { if ($p[$i]['jmeno'] == $jmeno) { return $i; } } return sizeof($p); } function BubbleSortg(&$p, $key) { $sorted = false; while (!$sorted) { $sorted = true; for ($i = 1; $i < sizeof($p); $i++) { if ($p[$i-1][$key] < $p[$i][$key]) { $sorted = false; $tmp = $p[$i-1]; $p[$i-1] = $p[$i]; $p[$i] = $tmp; } } } } |
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0