Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/06/2013, 11:33
mandygr87
 
Fecha de Ingreso: abril-2013
Mensajes: 82
Antigüedad: 11 años, 6 meses
Puntos: 0
parentesis en where zend_db_select

Hola, estoy intentando hacer una consulta de este tipo en mi modelo que extiende de Zend_Db_Table_Abstract:

Código MySQL:
Ver original
  1. FROM tabla
  2. WHERE id=1 AND nombre LIKE \''.$nombre.'\' AND (apellido1 LIKE \''.$apellido.'\' OR apellido2 LIKE \''.$apellido.'\')

El problema que tengo es al poner el paréntesis para que tenga prioridad el OR.

Según la documentacion he visto esto:
http://framework.zend.com/manual/1.1...db.select.html

Código PHP:
Ver original
  1. // Build this query:
  2. //   SELECT product_id, product_name, price
  3. //   FROM "products"
  4. //   WHERE (price < 100.00 OR price > 500.00)
  5. //     AND (product_name = 'Apple')
  6.  
  7. $minimumPrice = 100;
  8. $maximumPrice = 500;
  9. $prod = 'Apple';
  10.  
  11. $select = $db->select()
  12.              ->from('products',
  13.                     array('product_id', 'product_name', 'price'))
  14.              ->where("price < $minimumPrice OR price > $maximumPrice")
  15.              ->where('product_name = ?', $prod);

He intentado hacerlo de esta forma y me sale el siguiente error:

Column not found: 1054 Unknown column '$empresa' in 'where clause'

El código es este:


Código PHP:
public function todasreservas($dni$nombre$apellidos$idreserva$empresa) {

        
$empresa $empresa;

        
$row $this->fetchAll($this->select()->where('dni LIKE ?',$dni)->where('idreserva LIKE?',$idreserva)->where('parcelaidcamping LIKE $empresa OR bungalowidcamping LIKE $empresa OR idempresaactividad LIKE $empresa')->order(array('fechaentrada'))->order(array('dni')));

 
$rowArray $row->toArray();

        return 
$rowArray