Warning: strpos() expects parameter 1 to be string

Résolu
Bonjour,

Je vous sollicite, j'ai un souci au niveau des paramètres, j'ai un fichier PHP avec des requêtes SQL/Zend,

public function getByDemande($idDemande, $typeTiers) {

$select = $this -> newSelect(true);
$select -> from(array('d' => 'Demande'));
$select -> join(array('s' => 'Suivi'), 'd."idDemande" = s."idDemande"');
$select -> join(array('t' => $typeTiers),'d."idContact" = t."idTiers"');
$select -> joinLeft(array('tet' => 'TelephoneTiers'), 't."idTiers" = tet."idTiers"');
$select -> joinLeft(array('mt' => 'MailTiers'), 't."idTiers" = mt."idTiers"');
$select -> join(array('at' => 'AdresseTiers'), 't."idTiers" = at."idTiers"');
$select -> where('d."idDemande" = s."idDemande"', $idDemande);
$select -> where('d."actif"= true');
$select -> order('s.dateHeure DESC');

return $this->fetchAll($select);
}


Et d'un autre côté, j'ai un fichier controller PHP, qui me sert a récupérer les informations, coordonnées, pour l'imprimer en PDF,

private function printHeader() {
$lineBreak = 5;
$data = $this->_getPostData();
$idDemande = $data;
$typeTiers = $data;

$gtwDemande = new LogisCom_Model_Gateway_Demande();
$resultatDemande = $gtwDemande->getByDemande($idDemande, $typeTiers);
$resultatDemande = $resultatDemande->toArray();

$pdf = $this->_pdf;


Mon souci, c'est qu'au niveau de $resultatDemande, ca me lance deux erreurs, "Warning: strpos() expects parameter 1 to be string, array given" "Warning: explode() expects parameter 2 to be string, array given "

Merci d'avance pour votre aide

2 réponses

  1. Contributeur
    bonsoir, c'est souvent une bonne idée, quand on a un message d'erreur, d'expliquer sur quelle ligne de code le message est généré.
    par ailleurs, as-tu bien compris pourquoi tu fais ceci?
    $idDemande = $data;
    $typeTiers = $data;

    ne serait-il pas judicieux de faire autrement?
    1. Concernant ta question, j'ai fait ça, parce que je récupère les données de la requête. Et avec le getPostData, je récupère tous les champs de ma base a partir de la requête que j'ai fait.
    2. Contributeur
      @jeremyb36as-tu déjà un peu d'expérience en programmation?
    3. Je suis presque a ma fin de formation de 10 mois de programmation (php, javascript, rpg, html/css) la actuellement je suis en stage d'entreprise ou j'utilise un framework php Zend ou je n'ai presque aucune expérience, également un framework javascript Ext.Js
  2. Modérateur
    Bonjour

    A mon avis...
    $data est un array associatif...
    Fais en un print_r et regarde ce que ca t'affiche...
    1. Je te remercie pour ta réponse, je regarderais ca demain matin, parce que mes fichiers je n'y ai accès que quand je suis en entreprise.
    2. Bonjour jordane45,

      Alors j'ai fait un print_r sur $data, et ca m'affiche bien un array dont idDemande = 850 (identifiant de la demande) et $typeTiers = 1.

      Du coup, il faut que je fasse une conversion d'array en chaine de caractères.
    3. Modérateur
      Ben..; faut juste utiliser la bonne syntaxe pour alimenter tes variables...

      Un truc du genre :
      $idDemande = $data['idDemande'];
      $typeTiers = $data['idTiers'];
      
    4. Comment je n'ai pas pu penser à ça... Il faut croire que je manque encore d'expérience en développement, merci pour votre réponse.