Autor Zpráva
mpark
Profil
Zdravím,
je to asi promitivní, ale ne na to přijít. Provádím tento příkaz:

MySQL_Query("UPDATE `zapasy` SET `goly1` = '$g1', `goly2` = '$g2', `hrano` = 'y', `tip` = '$tip' WHERE team1 = '$t1' and team2 = '$t2' LIMIT 1") or die("DB Error: Nelze vykonat update databáze! ".mysql_error());;


Když už v tabulce mám např. ve sloupci goly1 a goly2 údaje |0| |1| a nyní díky tomu příkazu to chci změnit na 3($g1) 2($g2), tak místo aby byl výsledný počin oněch posledních 3:2, tak to údaje přičte na 3:3. Nemám použít místo UPDATE příkaz REPLACE? Nebo čím to může být?

Sloupec je ve formátu int(11).
Hugo
Profil
Vypiš si ten SQL příkaz pomocí print. IMHO máš chybu v těch proměnných, které tam dosazuješ.
mpark
Profil
Jak se to dělá? Vypsat si příkaz? A kde mám chybu?
mpark
Profil

db_connect();
$t1 = $_POST['team1'];
$t2 = $_POST['team2'];
$g1 = $_POST['goly1'];
$g2 = $_POST['goly2'];

if ($g1 > $g2):
$tip = 1;
elseif ($g1 = $g2):
$tip = 0;
elseif ($g1 < $g2):
$tip = 2;
endif;
MySQL_Query("UPDATE `zapasy_red` SET `goly1` = '$g1', `goly2` = '$g2', `hrano` = 'y', `tip` = '$tip' WHERE team1 = '$t1' and team2 = '$t2' LIMIT 1") or die("DB Error: Nelze vykonat update uživatele! ".mysql_error());;
mysql_close();
krteczek
Profil
chybu máš v:
elseif ($g1 = $g2):

máš tam přiřazení místo porovnání!!!
elseif ($g1 === $g2):


a ještě:
$g1 = $_POST['goly1']; přepiš na $g1 = (int)$_POST['goly1'];


a přepiš to u všech přiřazení, tím dosáhneš toho že to bude číslo. ještě bych si ohlídal jestli je ta proměnná poslána:

if(!empty($_POST['goly1']))
{
$g1=(int)$_POST['goly1'];
}
else
{
$g1=0;
}

mpark
Profil
Krásné, díky.:-)
mpark
Profil
Super, funguje to.Musí tam být ale ta identická rovnost? === Nestačí jenom rovnost? ==
mpark
Profil
Nebudu tam dávat identickou rovnost, funguje to i při normální rovnosti.:-) Ještě jednou díky.
Toto téma je uzamčeno. Odpověď nelze zaslat.