Database update s vyuzitim stavajich hodnot

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
zdeno
Člen | 13
+
0
-

Ahoj,
jak napisem toto:

<?php
	$this->db->table('cart2product')->where($where)->update(array('quantity' => 'quantity + 1' ));
?>

skusal som aj

<?php
	$this->db->table('cart2product')->where($where)->update(array('quantity' => new \Nette\Database\SqlLiteral('quantity').' + 1' ));
?>

stale je dotaz:

UPDATE cart2product SET quantity=quantity + 1 WHERE (id = ‚16‘)
namiesto
UPDATE cart2product SET quantity= quantity + 1 WHERE (id = ‚16‘)

diky :)

Editoval zdeno (26. 9. 2016 18:50)

Altimit
Člen | 82
+
-6
-

to máš jako quantity sloupec kde je to číslo tak to máš jednoduché

$numb = $this->database->table('cart2product')->where('id = ?',$id)->select('quantity');
$this->database->table('cart2product')->where('id = ?',$id)->update(array(quality => $numb + 1));

teď ale bych kecal z vody možná by to takhle mohlo fungovat zkus to :)

David Matějka
Moderator | 6445
+
+2
-

Jelikoz kdyz das za ten new SqlLiteral tecku pro spojeni retezcu, tak se to samozrejme prevede na jeden retezec. pouzij neco jako new SqlLiteral('quantity + 1')