Oznámení
Omlouváme se, provoz fóra byl ukončen
Změna operátoru když ve WHERE používám pole
Upozornění: Tohle vlákno je hodně staré.
před 9 lety
- Morfeo21
- Backer | 35
Zdravím Dibi Guru, mám problém, se kterým si nevím rady. Nebo
minimálně mě nenapadá žádné jednoduché řešení.
Mám dotaz:
<?php
return dibi::query('SELECT * FROM tabulka',
'%if', isset($where), 'WHERE %and', isset($where) ? $where : array(), '%end', ... );
?>
V proměnné $where je pole, ale pro některé položky z toho pole bych potřeboval změnit operátor z = na LIKE. Jde to řešit nějak? :)
Díky za pomoc!
Editoval Morfeo21 (21. 1. 2011 15:44)
před 9 lety
- matata
- Backer | 672
Dej ukazku vstupního pole, což chápu že asi je obyčejné pole. A dej ukázky 2 nebo 3 výstupního pole.
před 9 lety
- Milo
- Nette Core | 1119
$and = array();
$and[] = array( '%b', true );
foreach( $where AS $colName => $colVal )
{
if( ??? )
{
$and[] = array( '%n LIKE %~like~', $colName, $colVal );
}
else
{
$and[] = array( '%n = %s', $colName, $colVal );
}
}
return dibi::query( 'SELECT * FROM tabulka WHERE %and', $and );
před 9 lety
- matata
- Backer | 672
Ahoj,
tak co vidím, jinak to asi nepůjde, jak to teď máš.
Přemýšlel jsem zda ti pomůží složitější výrazy ale myslím že to není to co hledáš? Mrkni se a vyzkoušej :)
Editoval matata (22. 1. 2011 16:36)