Foros del Web » Programando para Internet » PHP »

Warning: Illegal string offset

Estas en el tema de Warning: Illegal string offset en el foro de PHP en Foros del Web. Hola a todos como estan veran tengo el siguiente problema tengo un funcion que me realiza una consulta asi @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original ...
  #1 (permalink)  
Antiguo 29/02/2016, 11:06
 
Fecha de Ingreso: abril-2015
Mensajes: 304
Antigüedad: 9 años
Puntos: 2
Warning: Illegal string offset

Hola a todos como estan veran tengo el siguiente problema tengo un funcion que me realiza una consulta asi
Código PHP:
Ver original
  1. class ComercialDODAO {
  2. public static function filtrar_seguimiento($ft_usid,$ft_data){
  3.         $cnBD = Conexion::getConexion();
  4.         $filtrar_seguiento = array();
  5.         $statement = "SELECT seg_id,seg_fecha_ultimo_contac,seg_fecha_proximo_contac,jc_empresa_nombre,CONCAT(jc_contacto_apellidos,' ',jc_contacto_nombre) AS datos_contacto,
  6.            jc_email_trabajo_contacto AS email_contacto,seg_nom_propuesta,seg_fr_moneda,seg_valor_venta,CONCAT(jc_usuario_nombre,' ',jc_usuario_apellidos) AS responsable_comercial,
  7.            seg_estatus_nombre,seg_observaciones
  8.            FROM seg_comercial sgc
  9.            LEFT JOIN empresa ep ON ep.jc_empresa_id=sgc.jc_empresa_id
  10.            LEFT JOIN contacto ct ON ct.jc_contacto_id=sgc.jc_contacto_id
  11.            LEFT JOIN usuarios_crm usc ON usc.jc_usuario_id=sgc.jc_usuario_id
  12.            LEFT JOIN seg_estatus sge ON sge.seg_estatus_id=sgc.seg_estatus_id
  13.            WHERE sgc.jc_usuario_id = :us_id";
  14.         $statement.= ($ft_data["ft_empresa_id"] != "") ? " AND sgc.jc_empresa_id = :empresa_id ":"";
  15.         $statement.= ($ft_data["ft_contacto"] != "") ? " AND sgc.jc_contacto_id = :contacto_id ":"";
  16. $query_filtrar = $cnBD->prepare($statement);
  17.         $query_filtrar->bindParam('us_id',$ft_usid,PDO::PARAM_INT,11);
  18.         ($ft_data["ft_empresa_id"] !="") ? $query_filtrar->bindParam('empresa_id',$ft_data["ft_empresa_id"]): "";
  19.         ($ft_data["ft_contacto"] !="") ? $query_filtrar->bindParam('contacto_id',$ft_data["ft_contacto"]): "";
  20. $query_filtrar->execute();
  21.         while ($fila = $query_filtrar->fetchObject()) {
  22.             $filtrar_seguiento[] = $fila;
  23. return $filtrar_seguiento;
  24.         }
  25. }
luego de ello esos datos los recupero en otra clase asi
Código PHP:
Ver original
  1. class ComercialDO {
  2. public static function filtro_seguimiento($ft_data,$us_id) {
  3. $mostrar_filtro = ComercialDODAO::filtrar_seguimiento($ft_data,$us_id);
  4.         $filtro_json = array();
  5.             $fr_moneda = $filas->seg_fr_moneda;
  6.             if($fr_moneda == 1){
  7.                 $moneda = "S/";
  8.             }elseif($fr_moneda == 2){
  9.                 $moneda = "$";
  10.             }
  11.             $filtro_json[] = array('alerta' => $colorEtiqueta,
  12.                 'seg_id' => $filas->seg_id,
  13.                 'seg_fecha_ultimo_contac' => date("d-m-Y",strtotime($filas->seg_fecha_ultimo_contac)),
  14.                 'seg_proximo_contac' => date("d-m-Y",strtotime($filas->seg_fecha_proximo_contac)),
  15.                 'jc_empresa_nombre' => $filas->jc_empresa_nombre,
  16.                 'datos_contacto' => $filas->datos_contacto,
  17.                 'email_contacto' => $filas->email_contacto,
  18.                 'seg_nom_propuesta' => $filas->seg_nom_propuesta,
  19.                 'seg_fr_moneda' => $moneda,
  20.                 'seg_valor_venta' => $filas->seg_valor_venta,
  21.                 'responsable_comercial' => $filas->responsable_comercial,
  22.                 'seg_estatus_nombre' => $filas->seg_estatus_nombre,
  23.                 'seg_observaciones' => $filas->seg_observaciones);
  24.         }
  25.         return json_encode($filtro_json);
  26.     }
  27. }
luego envio la informacion desde otro script
Código PHP:
Ver original
  1. require_once '../autoloadIn.php';
  2. $ftdata =  new ComercialDO();
  3. $usuario_id = $_SESSION["cod_user"];
  4. $ft_data = array();
  5. $ft_data["ft_empresa_id"] = isset($_POST["ft_empresa_id"])?trim($_POST["ft_empresa_id"]):"";
  6. $ft_data["ft_contacto"] = isset($_POST["ft_contacto"])?trim($_POST["ft_contacto"]):"";
  7. $ft_data["ft_fecha_inicio"] = isset($_POST["ft_fecha_inicio"])?trim($_POST["ft_fecha_inicio"]):"";
  8. $ft_data["ft_fecha_final"] = isset($_POST["ft_fecha_final"])?trim($_POST["ft_fecha_final"]):"";
  9. $ftdata = $ft_data;
  10. $filtro = ComercialDO::filtro_seguimiento($ftdata,$usuario_id);
  11. echo $filtro;
cuando ejecuto este script me sale este error
Código PHP:
Ver original
  1. Warning: Illegal string offset 'ft_empresa_id' in C:\xampp\htdocs\jamming-crm\Clases\dao\ComercialDODAO.php on line 86
  2.  
  3. Warning: Illegal string offset 'ft_contacto' in C:\xampp\htdocs\jamming-crm\Clases\dao\ComercialDODAO.php on line 87
  4.  
  5. Warning: Illegal string offset 'ft_fecha_inicio' in C:\xampp\htdocs\jamming-crm\Clases\dao\ComercialDODAO.php on line 89
  6.  
  7. Warning: Illegal string offset 'ft_fecha_final' in C:\xampp\htdocs\jamming-crm\Clases\dao\ComercialDODAO.php on line 90
  8.  
  9. Warning: Illegal string offset 'ft_empresa_id' in C:\xampp\htdocs\jamming-crm\Clases\dao\ComercialDODAO.php on line 94
  10.  
  11. Warning: Illegal string offset 'ft_empresa_id' in C:\xampp\htdocs\jamming-crm\Clases\dao\ComercialDODAO.php on line 94
  12.  
  13. Fatal error: Only variables can be passed by reference in C:\xampp\htdocs\jamming-crm\Clases\dao\ComercialDODAO.php on line 94
por lo que vi eso sucede solo cuando envias un arreglo pero pruebo solo la consulta y no hay problema alguno cuando lo hago desde el script hai me muestra los errores

Etiquetas: fecha, offset, select, string, variable, warning
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:25.