| 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: 17 let
|
|||
0