update
update
chcel by som spravit tipovacku, len neviem ako mam riesit pridavanie bodov uzivatelom. Dal by sa spravit nejaky hromadny UPDATE ktory zmeni udaje stlpca BODY kazdemu IDuzivatelovi ked spustim skript, a nie len jednemu ID? alebo nejake lepsie riesenie dik
Môžeš použiť niečo takéto:
Kód: Vybrať všetko
UPDATE tabulka SET body=body+1000 WHERE otazka=5 AND tip=1uhadnutie vysledku (1) + uhadnutie presneho skore - 5 bodov
uhadnutie vysledku (X) + uhadnutie presneho skore - 5 bodov
uhadnutie vysledku (2) + uhadnutie presneho skore - 5 bodov
uhadnutie vysledku (1) - 3 body
uhadnutie vysledku (X) - 3 body
uhadnutie vysledku (2) - 3 body
uhadnutie vysledku (1X) - 2 body
uhadnutie vysledku (X2) - 2 body
body ukladam do tabulky zatial takto nejak:
kde realtip je skutocny vysledok a tip je tip
skore skutocne skore a tip_skore tipnute skore
uhadnutie vysledku (X) + uhadnutie presneho skore - 5 bodov
uhadnutie vysledku (2) + uhadnutie presneho skore - 5 bodov
uhadnutie vysledku (1) - 3 body
uhadnutie vysledku (X) - 3 body
uhadnutie vysledku (2) - 3 body
uhadnutie vysledku (1X) - 2 body
uhadnutie vysledku (X2) - 2 body
body ukladam do tabulky zatial takto nejak:
Kód: Vybrať všetko
$result = mysql_query("UPDATE tipovacka SET body=body+2 WHERE tip_skore1=skore1" );
$result = mysql_query("UPDATE tipovacka SET body=body+2 WHERE tip_skore2=skore2" );
$result = mysql_query("UPDATE tipovacka SET body=body+3 WHERE realtip1=tip1");
$result = mysql_query("UPDATE tipovacka SET body=body+3 WHERE realtip2=tip2"); kde realtip je skutocny vysledok a tip je tip
skore skutocne skore a tip_skore tipnute skore
Odporúčal by som urobiť takéto tabuľky (môžu obsahovať aj viac informácií):
zapasy
id
meno
datum
body1
body2
tipujuci
id
meno
body
tipy
id
id_tipujuci
id_zapas
tip
vysledok
Do tej tabuľky zápasy sa ukladajú zápasy, aby sa v prípade potreby mohli body pre súťažiacich vygenerovať znovu.
Funkcia na pridávanie bodov by mohla vyzerať približne takto:(celé by sa to ešte dalo vyladiť k tvojim presným potrebám)
zapasy
id
meno
datum
body1
body2
tipujuci
id
meno
body
tipy
id
id_tipujuci
id_zapas
tip
vysledok
Do tej tabuľky zápasy sa ukladajú zápasy, aby sa v prípade potreby mohli body pre súťažiacich vygenerovať znovu.
Funkcia na pridávanie bodov by mohla vyzerať približne takto:
Kód: Vybrať všetko
function pridat_body($match_id, $score1, $score2)
{
global $link;
if ($score1 == $score2) {
$res = 0;
$res2 = "(tipy.tip=3 OR tipy.tip=4)";
} else {
if ($score1 > $score2) {
$res = 1;
$res2 = "(tipy.tip=3)";
} else {
$res = 2;
$res2 = "(tipy.tip=4)";
}
}
$score = $score1 . ":" . $score2;
$query = "UPDATE tipy, tipujuci SET body=body+5 WHERE tipy.id_tipujuci=tipujuci.id AND tipy.vysledok='$score' AND tipy.tip='$res'";
$result = mysql_query($query, $link) or die(mysql_error());
echo "<br>\n";
$query = "UPDATE tipy, tipujuci SET body=body+3 WHERE tipy.id_tipujuci=tipujuci.id AND tipy.vysledok<>'$score' AND tipy.tip='$res'";
$result = mysql_query($query, $link) or die(mysql_error());
echo "<br>\n";
$query = "UPDATE tipy, tipujuci SET body=body+2 WHERE tipy.id_tipujuci=tipujuci.id AND $res2";
$result = mysql_query($query, $link) or die(mysql_error());
}dik, spravil som si tie tabulky vlozil som do nich nejake hodnoty na skusku, ale UPDATE nevykona, co tam este pridat pls
Kód: Vybrať všetko
<?
$host = "localhost";
$user = "root";
$pass = "";
$dbase = 'tip';
function pridat_body($match_id, $score1, $score2)
{
global $link;
if ($score1 == $score2) {
$res = 0;
$res2 = "(tipy.tip=3 OR tipy.tip=4)";
} else {
if ($score1 > $score2) {
$res = 1;
$res2 = "(tipy.tip=3)";
} else {
$res = 2;
$res2 = "(tipy.tip=4)";
}
}
$score = $score1 . ":" . $score2;
$query = "UPDATE tipy, tipujuci SET body=body+5 WHERE tipy.id_tipujuci=tipujuci.id AND tipy.vysledok='$score' AND tipy.tip='$res'";
$result = mysql_query($query, $link) or die(mysql_error());
echo "<br>\n";
$query = "UPDATE tipy, tipujuci SET body=body+3 WHERE tipy.id_tipujuci=tipujuci.id AND tipy.vysledok<>'$score' AND tipy.tip='$res'";
$result = mysql_query($query, $link) or die(mysql_error());
echo "<br>\n";
$query = "UPDATE tipy, tipujuci SET body=body+2 WHERE tipy.id_tipujuci=tipujuci.id AND $res2";
$result = mysql_query($query, $link) or die(mysql_error());
}
if ($result==1):
echo "<H1>Tipovačka je upravená.</H1>"
;
else:
echo "<H1>Tipovačku sa nepodarilo upraviť.</H1>"
;
endif;
?>
V tabuľke tipy je v stĺpci id_tipujuci odkaz do tabuľky tipujuci. id_zapas je zase odkaz do tabuľky zapasy. Stĺpec tip obsahuje 0, 1, 2, 3, 4 (pre X, 1, 2, 1X, 2X). vysledok obsahuje reťazec so skóre (možno by sa to mohlo dať do dvoch stĺpcov).
Čiže keď tam chceš pridať nejaké tipy, pridáš tam pre každého tipujúceho riadok. Nastavíš id_tipujuci na id toho človeka (jeho id sa dozvieš v tabuľke tipujuci); id_zapas nastavíš na id zápasu; ďalej nastavíš tip a vysledok.
Samozrejme, nastavovať to ručne je "mierne" otravné, takže by bolo vhodné vytvoriť na to všetko skripty, ktoré by sa o potrebné veci postarali.
Priložil som php a sql súbor. Ten sql naimportuj do db. Slúži to na testovanie (či skôr ukážku funkčnosti). Pridal som tam funkciu show. Je tam na to, aby si videl, či sa tie údaje menia (potom ju môžeš vymazať).
// chrono: ten rar súbor som zmenil (aspoň dúfam
)Upravil som v ňom pripájanie na databázu (dal som tam tie tvoje údaje)
Čiže keď tam chceš pridať nejaké tipy, pridáš tam pre každého tipujúceho riadok. Nastavíš id_tipujuci na id toho človeka (jeho id sa dozvieš v tabuľke tipujuci); id_zapas nastavíš na id zápasu; ďalej nastavíš tip a vysledok.
Samozrejme, nastavovať to ručne je "mierne" otravné, takže by bolo vhodné vytvoriť na to všetko skripty, ktoré by sa o potrebné veci postarali.
Priložil som php a sql súbor. Ten sql naimportuj do db. Slúži to na testovanie (či skôr ukážku funkčnosti). Pridal som tam funkciu show. Je tam na to, aby si videl, či sa tie údaje menia (potom ju môžeš vymazať).
// chrono: ten rar súbor som zmenil (aspoň dúfam
- Prílohy
-
- tip.rar
- (1.32 KiB) 75 stiahnutí