Autor | Zpráva | ||
---|---|---|---|
gogy27 Profil |
#1 · Zasláno: 5. 3. 2009, 21:22:23
Nedavno som mal problem s vytvorenim vypisania zapasov pre svoju mini ligu a chcem vypisat zapasy atd... tu je script prosim aby ste si to pozreli niekde je chybycka lebo chcem aby v tom $den bolo 6 zapasov normalne jak 1 kolo zeby sa nestalo aby sa opakovali muzstva
<?php include_once ('config.php'); $abc = 1; $kolo2 = 1; $x = 1; for ($i=1; $i<=12; $i++) { $sql = " SELECT * FROM uzivatelia WHERE id='$x' "; $query = mysql_query($sql); while ($pozadavek = mysql_fetch_array($query)) { $result = $pozadavek["nick"]; } $sql2 = " SELECT * FROM uzivatelia WHERE id='$i' "; $query2 = mysql_query($sql2); while ($pozadavek2 = mysql_fetch_array($query2)) { $super = $pozadavek2["nick"]; } if ($result != $super) { if ($abc==1) { echo "KOLO $kolo2<br>"; echo "$result : $super<br>"; $kolo = $kolo2 + 11; echo "KOLO $kolo<br>"; echo "$super : $result<br>"; if ($kolo2 == 1) {$den = 1;} if ($kolo2 == 2) {$den = 2;} if ($kolo2 == 3) {$den = 3;} if ($kolo2 == 4) {$den = 4;} if ($kolo2 == 5) {$den = 5;} if ($kolo2 == 6) {$den = 8;} if ($kolo2 == 7) {$den = 9;} if ($kolo2 == 8) {$den = 10;} if ($kolo2 == 9) {$den = 11;} if ($kolo2 == 10) {$den = 12;} if ($kolo2 == 11) {$den = 15;} if ($kolo == 12) {$den2 = 16;} if ($kolo == 13) {$den2 = 17;} if ($kolo == 14) {$den2 = 18;} if ($kolo == 15) {$den2 = 19;} if ($kolo == 16) {$den2 = 22;} if ($kolo == 17) {$den2 = 23;} if ($kolo == 18) {$den2 = 24;} if ($kolo == 19) {$den2 = 25;} if ($kolo == 20) {$den2 = 26;} if ($kolo == 21) {$den2 = 29;} if ($kolo == 22) {$den2 = 30;} $sql_over2 = "SELECT * FROM zapasy WHERE tymA = '$result' AND tymB = '$super'"; $sql_over = "SELECT * FROM zapasy WHERE tymA = '$super' AND tymB = '$result'"; $query_zapas = mysql_query($sql_over); $query_zapas2 = mysql_query($sql_over2); $pocetRiadkov = mysql_num_rows($query_zapas); $pocetRiadkov2 = mysql_num_rows($query_zapas2); if ($pocetRiadkov != 1 or $pocetRiadkov2 != 1) { $sql_zapas = "INSERT INTO zapasy (tymA, tymB, den) VALUES ('$super', '$result', '$den')"; $sql_zapas2 = "INSERT INTO zapasy (tymA, tymB, den) VALUES ('$result', '$super', '$den2')"; $query_sql2 = mysql_query($sql_zapas2); $query_sql = mysql_query($sql_zapas); } $abc=0; } else { echo "KOLO $kolo2<br>"; echo "$super : $result<br>"; $kolo = $kolo2 + 11; echo "KOLO $kolo<br>"; echo "$result : $super<br>"; if ($kolo2 == 1) {$den = 1;} if ($kolo2 == 2) {$den = 2;} if ($kolo2 == 3) {$den = 3;} if ($kolo2 == 4) {$den = 4;} if ($kolo2 == 5) {$den = 5;} if ($kolo2 == 6) {$den = 8;} if ($kolo2 == 7) {$den = 9;} if ($kolo2 == 8) {$den = 10;} if ($kolo2 == 9) {$den = 11;} if ($kolo2 == 10) {$den = 12;} if ($kolo2 == 11) {$den = 15;} if ($kolo == 12) {$den2 = 16;} if ($kolo == 13) {$den2 = 17;} if ($kolo == 14) {$den2 = 18;} if ($kolo == 15) {$den2 = 19;} if ($kolo == 16) {$den2 = 22;} if ($kolo == 17) {$den2 = 23;} if ($kolo == 18) {$den2 = 24;} if ($kolo == 19) {$den2 = 25;} if ($kolo == 20) {$den2 = 26;} if ($kolo == 21) {$den2 = 29;} if ($kolo == 22) {$den2 = 30;} $sql_over2 = "SELECT * FROM zapasy WHERE tymA = '$super' AND tymB = '$result'"; $sql_over = "SELECT * FROM zapasy WHERE tymA = '$result' AND tymB = '$super'"; $query_zapas2 = mysql_query($sql_over2); $query_zapas = mysql_query($sql_over); $pocetRiadkov = mysql_num_rows($query_zapas); $pocetRiadkov2 = mysql_num_rows($query_zapas2); if ($pocetRiadkov != 1 or $pocetRiadkov2 != 1) { $sql_zapas = "INSERT INTO zapasy (tymA, tymB, den) VALUES ('$result', '$super', '$den')"; $sql_zapas2 = "INSERT INTO zapasy (tymA, tymB, den) VALUES ('$super', '$result', '$den2')"; $query_sql2 = mysql_query($sql_zapas2); $query_sql = mysql_query($sql_zapas); } $abc=1; } if ($kolo2 == 12) { $kolo2 = 1; } $kolo2++; } if ($x == 12 and $i == 12) { break; } if ($i == 12) { $i = 0; $x++; } } ?> |
||
SwimX Profil |
#2 · Zasláno: 5. 3. 2009, 21:26:07 · Upravil/a: SwimX
gogy27
jejdanánku, co to je? slyšel jsi o switchi? edit: a o modulu? usandilo by to tvoji podmínku z 22 řádek na 6 myslím. celkvoě se v tom prostě nevyznám. |
||
gogy27 Profil |
#3 · Zasláno: 5. 3. 2009, 21:30:42
slysel slysel ale nejak to samo islo s tymi if a mne sa to robi lepsie s IF nejak si na switch nwm navyknut inac tu si to mozes pozriet http://c1rca.mgamecs.com/skuska.php nick: gogy heslo: patolog
|
||
tiso Profil |
#4 · Zasláno: 6. 3. 2009, 02:45:53 · Upravil/a: tiso
gogy27 - celé to je na houby, chudák databázový server...
Robí sa to inak: 1. vytvoríš si registráciu tímov do ligy pre nadchádzajúcu sezónu (mesiac, nazvi si to ako len chceš) 2. po naplnení počtu zaregistrovaných týmov do počtu v lige môžeš spustiť rozlosovanie a vytvoriť zápasy (alebo k nejakému dátumu, ako len chceš) body 1. a 2. máš možno v inom skripte, ide mi ale o komplexné vysvetlenie Rozlosovanie: 3. vytiahneš si z databázy do poľa prihlásené týmy (1. sql dotaz) 4. toto pole skopíruješ do druhého a zamiešaš (shuffle) 5. v cykle na rozlosovanie týmov si poskladáš dotaz na hromadné vloženie zápasov do databázy (2. sql dotaz) Zmestíš sa na 30 riadkov. |
||
gogy27 Profil |
#5 · Zasláno: 6. 3. 2009, 17:48:14
tiso
1. a 2. tak ako hovoris mam inde 5. ako si to myslel ze sa zmestim do 30 riadkov? podla mna nestaci len premisat pretoze su tam rozne obmedzenia atd |
||
gogy27 Profil |
#6 · Zasláno: 6. 3. 2009, 17:49:50
inac vsetko mi ide len
if ($kolo2 == 12) { $kolo2 = 1; } $kolo2++; tieto dve veci niekde musim dat pretoze pri prvom tyme mi prvy a posledny tym ich zapas neda ako 12 ale ako 1 a potom tym padom mam niektore z tymov v jednom kole 2. krat |
||
tiso Profil |
#7 · Zasláno: 6. 3. 2009, 20:33:23
gogy27 - tak nakoniec som sa trošku prepočítal, ten môj algoritmus funguje iba ak $pole1=$pole2.
Čiže: 3. vytiahneš si z databázy do poľa prihlásené týmy v náhodnom poradí (1. sql dotaz) 4. toto pole skopíruješ do druhého 5. v cykle na rozlosovanie týmov si poskladáš dotaz na hromadné vloženie zápasov do databázy (2. sql dotaz) 6. uložíš si vylosované zápasy do databázy Toto celé(3.-6.) spolu s <?php, include a ?> okolo mám na 26 riadkov. |
||
Joker Profil |
#8 · Zasláno: 6. 3. 2009, 21:06:42
tiso
chudák databázový server... No to teda. Jen do tabulky uživatelů se bude dělat 144 SQL dotazů, přitom by stačil jeden. SwimX jejdanánku, co to je? slyšel jsi o switchi? +1 Na tohle by ani switch nebyl potřeba. Ani to modulo by nebylo potřeba, stačilo by jen odčítání, řekl bych. Ale nechápu tu logiku se $kolo a $kolo2... - v $kolo2 je nějaké číslo od 1 do 12... po prvním "přetočení" pak od 2 do 12. - do $kolo se uloží $kolo2 + 11 => v $kolo bude číslo od 12 do 23, po prvním "přetočení" tedy od 13 do 23. Potom tedy minimálně první polovina podmínek (testující $kolo2) nemá vůbec žádný smysl, protože budou vzápětí přepsány druhou polovinou podmínek. Například pokud $kolo2 je 1, $kolo bude 12. A tudíž $den bude 16. Tzn. $den nebude nikdy menší než 16. |
||
gogy27 Profil |
#9 · Zasláno: 7. 3. 2009, 17:01:36
Joker
joker ale je tam aj $den2 a to ide o to pretacanie zapasov ze ak budu hrat v prvom kole tym1 : tym2 tak o 11 kol neskor budu hrat tym2 : tym1 tiso mohol by si mi ten script tu ukazat? |
||
tiso Profil |
#10 · Zasláno: 7. 3. 2009, 20:30:52
gogy27 - čo za to?
|
||
gogy27 Profil |
#11 · Zasláno: 7. 3. 2009, 20:53:25
tiso
co by si chcel? jaku mam istotu ze to bude fungovat? |
||
tiso Profil |
#12 · Zasláno: 8. 3. 2009, 01:59:16
gogy27 - 10 €, na vyskúšanie tu: http://tmp.tiso.sk/rozlosovanie.php
|
||
gogy27 Profil |
#13 · Zasláno: 8. 3. 2009, 12:29:26
tiso
keby ze som vedel heslo na internet banking aj by som ti to dal ale smola no :D |
||
tiso Profil |
#14 · Zasláno: 8. 3. 2009, 12:37:23
gogy27 - myslím že smola je na tvojej strane... Mne ide o princíp - urobiť to ide, tak ako som písal.
|
||
gogy27 Profil |
#15 · Zasláno: 8. 3. 2009, 13:08:49
tiso
oka mno diky za ochotu :) inac by som ti dal tie peniaze lebo uz nwm ako na to skusim daco si sam pozliepat |
||
gogy27 Profil |
#16 · Zasláno: 8. 3. 2009, 13:22:27
tiso
to rozlosovanie si urobil tym shuffle? |
||
gogy27 Profil |
#17 · Zasláno: 9. 3. 2009, 19:47:09
tiso
nechcel by si daco ine? lebo peniaze ti nemozem poslat :/ |
||
tiso Profil |
#18 · Zasláno: 9. 3. 2009, 19:48:35
gogy27 - nie
|
||
Časová prodleva: 3 dny
|
|||
Kcko Profil |
#19 · Zasláno: 12. 3. 2009, 21:41:49
|
||
tiso Profil |
#20 · Zasláno: 12. 3. 2009, 22:16:48
Kcko - pekné, ale uvádza tam nepravdivú informáciu - že algoritmus funguje s minimálnym počtom kôl. To ale nie je pravda. Pri nepárnom počte týmov totiž môj algoritmus ušetrí jedno kolo. Ten jeho algoritmus dodržiava rovnaký počet zápasov.
|
||
Časová prodleva: 10 dní
|
|||
oksim Profil |
#21 · Zasláno: 22. 3. 2009, 17:57:06
tiso nechces to zverejnit? tvoje je predsa len lepsie... :)
|
||
gogy27 Profil |
#22 · Zasláno: 22. 3. 2009, 19:27:54
oksim
ja si teraz upravujem ten Kckov a uplne v pohode to je ten skript :) dakujem |
||
tiso Profil |
#23 · Zasláno: 22. 3. 2009, 20:45:07
oksim - viď [#12]
|
||
oksim Profil |
#24 · Zasláno: 22. 3. 2009, 21:48:36
gogy27
ked ho potom nejako rozumne upravis pls zverejni ho ... nesom nejaky extra php a dost by sa mi to zislo :) |
||
Časová prodleva: 15 dní
|
|||
oksim Profil |
#25 · Zasláno: 6. 4. 2009, 13:02:35
tiso, som si vsimol ze to tvoje tiez nieje dokonale ... skus zadat 3 tímy...
|
||
tiso Profil |
#26 · Zasláno: 6. 4. 2009, 14:23:11
oksim - fixed, neuvedomil som si že sa mi opakujú B týmy (v druhej polovici turnaja potom A týmy), takže [#20] neplatí.
Ešte porozmýšľam nad striedaním doma:vonku. |
||
Časová prodleva: 15 let
|
0