Mazani vice zaznamu, seznam id v arrayi

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

$id[0]=42;
$id[1]=53;
$id[2]=66;

$this->neco->smazatVice($id);

jak byste prosim zapsali metodu ‚smazatVice‘ se sql prikazem pro dibi, ktera bude mazat vice zaznamu pomoci pole?

diky, J.

Aurielle
Člen | 1281
+
0
-
dibi::query('DELETE FROM [neco] WHERE [id] IN(%ex)', $id);
wdolek
Člen | 331
+
0
-

snad neco takoveho? (pokud jsem spravne porozumel otazce)

/**
 * @param array $id
 * @return \DibiResult
 * @throws \InvalidArgumentException
 */
public function removeAll($id) {
	$db = self::doMagicAndReturnDibiConnection();
	if (empty ($id)) {
		throw new \InvalidArtugmentException('...');
	}
	if (is_scalar ($id)) {
		$id = array($id);
	} else {
		$id = (array) $id;
	}
	return $db->delete('myAwesomeTable')->where('%n IN %l', 'id', $id)->execute();
}
Ja
Člen | 260
+
0
-

gmvasek: diky za odpoved, ale nejak divne se ten array expandoval a sql prikaz pak hlasil chybu.

wdolek: hehehe, to vypada, jako bys nade mnou drzel ochrannou ruku:) fluent zapis pomohl:) diky moc