vypsání poslední použité podmínky

rbx
Člen | 13
+
0
-

ahoj,
dá se nějak vypsat poslední sql podmínka sestavená pomocí where? navíc se my zdá, že když sestavuji podmínky opakovaným použitím where(), tak se mi přidávají dál na sebe, i když mezitím volám fetch()
např. první podmínka where(‚since‘,$datum1)
fetch()
pak pouziji where(‚since‘,$datum2)
fetch
jenze v tracy vidim sql s podminkami where(‚since‘,$datum1),where(‚since‘,$datum2) dohromady

Editoval rbx (3. 3. 2019 23:43)

CZechBoY
Člen | 3608
+
0
-

ukaz kod

rbx
Člen | 13
+
0
-

public function fetch($conditions=null)
{
if ($conditions) {
foreach ($conditions as $condition) {

$sqlCondition=$condition[‚condition‘];
$this->contextTable->$sqlCondition($condition[‚column‘], $condition[‚value‘]);
}
}
$data = $this->contextTable->fetch();
if($data)
{
$data = $data->toArray();
}
else $data = [];

return $data;
}
a volání
$lesson->fetch([[‚condition‘ ⇒ ‚where‘, ‚column‘ ⇒ ‚since‘, ‚value‘ ⇒ $lesson->startFull], [‚condition‘ ⇒ ‚where‘, ‚column‘ ⇒ ‚to‘, ‚value‘ ⇒ $lesson->endFull], [‚condition‘ ⇒ ‚where‘, ‚column‘ ⇒ ‚instructor_id‘, ‚value‘ ⇒ $instructor->id]]);
vstupní data
Array ( [0] ⇒ Array ( [condition] ⇒ where [column] ⇒ since [value] ⇒ 2019–03–04 07:30:00 ) [1] ⇒ Array ( [condition] ⇒ where [column] ⇒ to [value] ⇒ 2019–03–04 09:00:00 ) [2] ⇒ Array ( [condition] ⇒ where [column] ⇒ instructor_id [value] ⇒ 2 ) )
Array ( [0] ⇒ Array ( [condition] ⇒ where [column] ⇒ since [value] ⇒ 2019–03–04 09:00:00 ) [1] ⇒ Array ( [condition] ⇒ where [column] ⇒ to [value] ⇒ 2019–03–04 10:30:00 ) [2] ⇒ Array ( [condition] ⇒ where [column] ⇒ instructor_id [value] ⇒ 2 ) )
a výsledek z tracy
SELECT *
FROM lesson
WHERE (since = ‚2019–03–04 07:30:00‘) AND (to = ‚2019–03–04 09:00:00‘) AND (instructor_id = 2)
další dotaz
SELECT *
FROM lesson
WHERE (since = ‚2019–03–04 07:30:00‘) AND (to = ‚2019–03–04 09:00:00‘) AND (instructor_id = 2) AND (since = ‚2019–03–04 09:00:00‘) AND (to = ‚2019–03–04 10:30:00‘)

David Matějka
Moderator | 6445
+
0
-

dá se nějak vypsat poslední sql podmínka sestavená pomocí where?

tuhle část dotazu nechápu, kde to chceš vypsat?

navíc se my zdá, že když sestavuji podmínky opakovaným použitím where(), tak se mi přidávají dál na sebe, i když mezitím volám fetch()

ano, tohle je vlastnost. instance selection je určena pro jeden dotaz. neukládej si $this->contextTable tu selection, ale celý context

rbx
Člen | 13
+
0
-

database si ukládám v konstruktoru objektu lesson

<?php
protected $table="lesson";

public function __construct(Nette\Database\Context $database)
	{
		$this->database = $database;
		$this->contextTable = $this->database->table($this->table);
	}
?>

a jak tedy uložit celý kontext?

David Matějka
Moderator | 6445
+
0
-

context je ta database – to pouzivej. nikoliv contextTable

rbx
Člen | 13
+
0
-

zdá se, že funguje, dík