Vložení předmětu do databaze z IS
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Vodarim
- Člen | 2
Ahoj, mám takový problém z webu se mě do databaze řadí item pořád na
stejné poličko po zakoupení v Itemshopu.
Jak tuto chybu upravim? Zde je code:
<?php
namespace Vodarim;
class Item
{
const TABLENAME = 'item';
private $id;
public function __construct()
{
}
private static function setProperties($instance, $row)
{
$instance->id = $row->id;
return $instance;
}
public static function getById($id)
{
$DB = DB::getDibi('account');
$result = $DB->select('*')
->from(self::TABLENAME)
->where('id = %i', $id)
->execute();
if ($result) {
if (count($result) == 1) {
$row = $result->fetch();
$instance = new self();
$instance = self::setProperties($instance, $row);
return $instance;
} else {
throw new Exception('Load error.');
}
} else {
throw new Exception('DB error.');
}
}
public function getId()
{
return $this->id;
}
public static function addItem($userid, $itemid)
{
$DB = DB::getDibi();
$result = $DB->select('max(pos) as pos')
->from(self::TABLENAME)
->where('owner_id = %i', $userid)
->execute();
if ($result) {
if (count($result) == 1) {
$row = $result->fetch();
$pos = $row->pos+1;
if($pos >= 42) $pos = 0;
$array = array(
'id' => null,
'owner_id' => $userid,
'window' => 'MALL',
'pos' => $pos,
'count' => '1',
'vnum' => $itemid
);
$result = $DB->insert(self::TABLENAME, $array)
->execute();
} else {
throw new Exception('Load error.');
}
} else {
throw new Exception('DB error.');
}
return true;
}
}
Děkuji za všechny rady…
Editoval Vodarim (12. 7. 2014 21:18)