przy pisaniu kolejnego modułu natknąlem sie na mały kłopot
Kod php:
private function pracuj()
{
if (!in_array($_POST['czaspracy'], array(1,2,3,4)) || !in_array($_POST['pracuj'],array('money','ziola','ryby')))
{
$msg = 'blad wartosci';
header('Location: index.php?mod=Work&msg=' . urlencode($msg));
exit;
}
$data = $this->db->fetchRow('SELECT * FROM `<ezrpg>praca` where login =?',array($this->player->username));
$czaspracy = $_POST['czaspracy']; // czas pracy to wybrany przez gracza czas pracy
$nowezyski = 60*$czaspracy; // obliczanie zysków z pracy (tu gracz może wpisać swoje dane)
$koniecpracy = time()+60*$czaspracy; // obliczamy końcowy czas w sekundach
$tablica = array(
'login'=>$this->player->username,
'koniec'=>$koniecpracy,
'zyski'=>$nowezyski,
'typ'=>$_POST['pracuj']);
if($data->koniec == NULL)
{ // jeżeli koniec w tabeli jest pusty
$this->db->execute('update `<ezrpg>players` set `?`=`?`+? where `id` = ?',array($_POST['pracuj'],$_POST['pracuj'],$nowezyski,$this->player->id)); // dodawanie pięniędzy graczu (przykładowo kasa)
$this->db->insert('<ezrpg>praca', $tablica);
}
else
{ // jeżeli warunek nie został spełniony
$this->db->execute('update `<ezrpg>players` set `?`=`?`+? where `id` = ?',array($_POST['pracuj'],$_POST['pracuj'],$nowezyski,$this->player->id)); // dodawanie pięniędzy graczu (przykładowo kasa)
$this->db->execute('update `<ezrpg>praca` set `koniec` = ?, `zyski` = ?, `typ` = ? where `id` = ?',array($koniecpracy,$nowezyski,$_POST['pracuj'],$this->player->username)); // updatowanie rekordu w tabeli praca
}
$msg = 'Rozpoczales wlasnie prace, bedziesz pracowal przez '.$czaspracy.' godziny.';
header('Location: index.php?mod=Work&msg=' . urlencode($msg));
}
oczywiście nie działa tak jak powinno. tylko zapytanie
Kod php:
$this->db->insert('<ezrpg>praca', $tablica);
działa poprawnie zupełnie nie wiem dlaczego może ktos pomóc??
Zakładki