Ver Mensaje Individual
  #5 (permalink)  
Antiguo 08/02/2011, 08:21
Avatar de Copia
Copia
 
Fecha de Ingreso: noviembre-2009
Mensajes: 309
Antigüedad: 14 años, 4 meses
Puntos: 4
Respuesta: no puedo hacer un consulta DQL usuando multiples variables.

muchas gracias a todos, aplique lo que me dijo masterpuppet que esta orientado a Doctrine, aun no tengo un resultado satisfactorio os dejo todo la clase quiza este haciendo algo mal y no me este dando cuenta:

Cuando ejecuto este codigo en la pagina me dice que "Pagina no disponible" como que si no lo encontrara y no lo entiendo porque si puedo por ejemplo imprimir la consulta.
Código PHP:
Ver original
  1. class Buscador{
  2.    
  3.     function bgeneral($incognita,$ar){
  4.        
  5.         $from = $ar['tabla']." t";        
  6.         $camp1 = "t.".$ar['camp1'];
  7.         $camp2 = "t.".$ar['camp2'];
  8.         $camp3 = "t.".$ar['camp3'];
  9.         $camp4 = "t.".$ar['camp4'];
  10.         $camp5 = "t.".$ar['camp5'];
  11.  
  12.         if($ar['camp4'] == 0){            
  13.             $select = "$camp1 AS camp1, $camp2 AS camp2, $camp3 AS camp3, $camp5 AS camp5";
  14.             echo "camino if<br>";
  15.         }else{
  16.             $select = "$camp1 AS camp1, $camp2 AS camp2, $camp3 AS camp3, $camp4 AS camp4, $camp5 AS camp5";
  17.             echo "camino else<br>";
  18.         }
  19.         $q = Doctrine_Query::CREATE()
  20.                 ->select($select)
  21.                 ->from($from)
  22.                 ->where('? LIKE ?', array($camp1,'%',$incognita,'%'))
  23.                 ->orWhere('? LIKE ?', array($camp2,'%',$incognita,'%'))
  24.                 ->orWhere('? LIKE ?', array($camp3,'%',$incognita,'%'));
  25.  
  26.        
  27.        // echo $q->getSqlQuery()."<br>";    
  28.         $rs = $q->fetchArray();
  29.         echo "<pre>";
  30.         print_r($rs);
  31.  
  32.     }
  33. }

Lo curioso en esto es que cuando hago $ar['tabla']." t"; da como resultado por ejemplo en la tabla clientes 'cliente c' esto no se como lo hace pero así lo veo al imprimir la consulta que es esta:

Código PHP:
Ver original
  1. SELECT c.idcliente AS c__0, c.nombre AS c__1, c.apellido AS c__2, c.fotourl AS c__3 FROM cliente c WHERE (? LIKE ? OR ? LIKE ? OR ? LIKE ?)
__________________
Dejando una huella de mi existencia por la red en http://tiricaya.com

Última edición por Copia; 08/02/2011 a las 08:23 Razón: falto especificar