tiny ‘n’ smart
database layer

Odkazy: dibi | API reference

Oznámení

Omlouváme se, provoz fóra byl ukončen

Rozdělení slov do vyhledávání

před 8 lety

iwory
Člen | 147

Zdravím, mohl bych poprosit o nakopnutínějakým směrem?
Začal jsem používat dibi a vše v pohodě. Teď jsem se ale zaseknul na vyhledávání.

Dříve jsem to měl řešené následovně:

$conditions = array();

$conditions[] = "(`DocName` LIKE '%" . implode("%' OR `DocName` LIKE '%",$word) . "%')";
$conditions[] = "(`DocContent` LIKE '%" . implode("%' OR `DocContent` LIKE '%",$word) . "%')";
$condition = implode(" OR ", $conditions);
$condition = " ( " . $condition . " ) ";

Při vyhledávání jednoho slova je vše v pořádku, ale když někdo vyhledáva třeba dvě slova, tak je rozdělím a na každý bych chtěl udělat dotaz. Buď najde jedno slovo někde, nebo druhý.

Akorá nevím přesně jak se stavit dotaz do dibi. Mohi poprosit o radu?

Díky moc Z.

před 8 lety

Milo
Nette Core | 1119

Cca.

$words = array( 'slovo1', 'slovo2', 'slovo3' );

$conds = array();
foreach( $words AS $word )
{
    $conds[] = array( '[DocName] LIKE %~like~', $word );
    $conds[] = array( '[DocContent] LIKE %~like~', $word );
}
dibi::query( 'SELECT [xxx] FROM [table] WHERE %or', $conds );

před 8 lety

iwory
Člen | 147

Díky moc, jede to přesně podle představ… Z.