Zadejte hledaný výraz...

Pokud existuje tak update.

Michales
verified
rating uzivatele
(5 hodnocení)
9. 5. 2013 08:32:03
Ahojte,
mam v db sloupec zapas, odehrano a id.
Odesilam do něj data pomocí formuláře.
Stejné id muže obsahovat několik řádků.
Nyní oč mi jde.
Potřeboval bych aby po odesláni formuláře projel skript tabulku našel stejné id skontroloval sloupec zápas a pokud v něm budou nějaké údaje přičetl k nim data z formuláře, pokud žádná nebudou zapise je. Do sloupce odehrano by se měl údaj vždy přepsat. Zapisují se do obou sloupců jen číselné údaje. Jelikož o PHP toho moc nevim tak bych vás chtěl poprosit jestli by nebyl někdo tak hodný a nenapsal mi to, pokud je vubec možné takto formulař zpravovat.
Asi bych měl po odeslání prvně zkontrolovat tabulku SELECTem a následně s podmínkou pokud existuje připsat údaje a pokud ne tak je INSERTem zapsat. Snadno se mi to takhle řekne ale naprogramovat to nějak neumím.
Děkuji všem.
9. 5. 2013 08:32:03
https://webtrh.cz/diskuse/pokud-existuje-tak-update#reply899463
Petr Kobelka
verified
rating uzivatele
9. 5. 2013 08:40:47
najdi si v manuálu mysql syntaxi "INSERT INTO ... ON DUPLICATE KEY UPDATE"
9. 5. 2013 08:40:47
https://webtrh.cz/diskuse/pokud-existuje-tak-update#reply899462
Michales
verified
rating uzivatele
(5 hodnocení)
9. 5. 2013 08:54:17
Kouknu na to.
---------- Příspěvek doplněn 09.05.2013 v 09:47 ----------
Tak jsem koukal a asi to nebylo to co potřebuji.
Napsal jsem toto ale nefunguje mi to:
$confid=intval($_POST);
$zap=$_POST;
$odehrano=$_POST;
// tu se dívám do databáze jeslti daný udaj už v databázi existuje.
$exist_zapas = mysql_result(mysql_query("SELECT COUNT(*) FROM sportsdb_teams WHERE zap='$zap' AND confid='$confid' "), 0);
//neexistuje -> potom ho vytvoříme pomocí insert
if($exist_zapas==0){
if ($zap != "zap" && $zap)
{
$import2="INSERT INTO sportsdb_teams (zap,odehrano) VALUES ('$zap', '$odehrano') WHERE confid='$confid'";
mysql_query($import2) or die(mysql_error());
}
}
//existuje -> potom ho aktualizujeme pomocí update
else {
if ($zap != "zap" && $zap )
{
$import="UPDATE sportsdb_teams SET zap=zap+'$zap',odehrano='$odehrano' WHERE confid='$confid'";
mysql_query($import) or die(mysql_error());
}
}
print "Limit zápasů v pořádku zapsán. Limit je $zap zápasů

Backn";
Možná je to úplná blbost nevím.
Jak jsem psal jsem začátečník a ještě skoro nic neumím :D
Píše mi to tuto chybu:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE confid='12'' at line 1
---------- Příspěvek doplněn 09.05.2013 v 10:02 ----------
Tak už vím že v INSERTU nesmí být WHERE.
To byla ta chyba, ovšem nyní mi to nezapisuje do db ikdyž se ukáže hláška že bylo vše v pořádku zapsané
---------- Příspěvek doplněn 09.05.2013 v 10:30 ----------
Vyřešil jsem to takto jednoduše, nevím jestli je to tak správně ale funguje to:
ob_start();
$confid=intval($_POST);
$zap=$_POST;
$zap2=$_POST;
$odehrano=$_POST;
$query="UPDATE sportsdb_teams SET zap = zap+'$zap',zap2 = '$zap2', odehrano = '$odehrano' WHERE confid=$confid ";
$result = mysql_query($query);
print "Limit zápasů v pořádku zapsán. Limit je $zap zápasů

Backn";
ob_end_flush();
?>
9. 5. 2013 08:54:17
https://webtrh.cz/diskuse/pokud-existuje-tak-update#reply899461
Michal Haták
verified
rating uzivatele
(1 hodnocení)
9. 5. 2013 10:35:33
pokud se ti dotaz do databáze nepovede, pak se ti stejně vypíše že byl zápas v pořádku zapsán, to neni dobře ne
9. 5. 2013 10:35:33
https://webtrh.cz/diskuse/pokud-existuje-tak-update#reply899460
Michales
verified
rating uzivatele
(5 hodnocení)
9. 5. 2013 10:47:13
Poslední kód co jsem vložil už funguje
9. 5. 2013 10:47:13
https://webtrh.cz/diskuse/pokud-existuje-tak-update#reply899459
Pro odpověď se přihlašte.
Přihlásit