IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

str_replace avec tableau php


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 82
    Points : 47
    Points
    47
    Par défaut str_replace avec tableau php
    Bonjour,

    j'ai un petit soucis avec un tableau en php.

    Dans mon tableau, j'ai des valeurs dans lesquelles il y a des & et je voudrais les échapper en mettant un \ devant.

    Mon tableau est créer après une requête sql.

    Je voudrais faire un str_replace sur tous les éléments de mon tableau.

    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $resultats = $this->varSaisie->recupFinaliteParProjet($projet); 	
     
    $resultats->setFetchMode(PDO::FETCH_OBJ);
     
    while( $resultat = $resultats->fetch() ){
    	$resultat = str_replace("&", "\&", $resultat);
            ...	
    }
    recupFinaliteParProjet est la fonction qui effectue ma requête sql.


    Ceci me renvoie l'erreur:
    Catchable fatal error: Object of class stdClass could not be converted to string
    Bon, l'erreur est assez explicite mais je ne sais pas comment corriger ça.



    Merci pour vos réponse.

  2. #2
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    $resultat est une instance de classe et pas une chaîne dans la mesure où tu définis $resultats->setFetchMode(PDO::FETCH_OBJ);.
    Tu dois extraire ta chaîne de l'instance : $resultat->colonne_du_sql

  3. #3
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    "str_replace" s'applique sur une chaîne de caractère, alors là tu l'appliques sur un objet (car oui tu fetch tes résultats en tant qu'objet et non en tant que tableau).

    IL te faut corriger cela, puis appliquer une fonction sur tous les éléments du tableau avec array_map".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $resultats = $this->varSaisie->recupFinaliteParProjet($projet);
     
    $resultats->setFetchMode(PDO::FETCH_ASSOC);
     
    function replaceEt($value) {
        return str_replace("&", "\&", $value);
    }
     
    while ($resultat = $resultats->fetch()) {
        $resultat = array_map("replaceEt",$resultat);
    }
    Ceci dit ci tu fais ceci en vu d'un affichage, vaut mieux utiliser directement la fonction htmlspecialchars.
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 82
    Points : 47
    Points
    47
    Par défaut
    Merci de ta réponse.

    Est-ce qu'il y a un moyen de faire sa sur toutes les valeurs du tableau sans donner le nom des colonnes car si mon tableau est grand sa va être long.

  5. #5
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    La fonction "array_map" permet d'appliquer une fonction sur toutes les colonnes.
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  6. #6
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 82
    Points : 47
    Points
    47
    Par défaut
    Merci sa a marché avec array_map.

    Par contre mon problème n'est pas tout à fait résolu.

    En faite, le tableau que j'utilise ici me permet de remplir des listes liées en ajax.

    Exemple:
    j'ai une liste déroulante, je choisi une option. En fonction du choix de ma première liste, une requête sql est effectuée et le résultat de cette requête est enregistré dans le tableau de tout à l'heure. Avec ce tableau je remplie une deuxième liste.

    Le problème c'est que quand j'ai des & dans les valeurs de mon tableau ma requête ajax plante.

    Avec votre aide j'ai réussie à modifier les & en \& mais sa ne marche pas non plus. Ma 2e liste reste vide.

    Par contre si je remplace les & par des "a", là sa marche. Ma 2e liste se remplie.

    Avez vous une solution pour ce problème.

    ps: sa fait un peu de hors sujet, je sais

  7. #7
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    Essaye avec la fonction "htmlspecialchars" comme je te l'ai conseillé plus haut.
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

Discussions similaires

  1. [PHP 5.2] [Tableaux] str_replace avec tableau
    Par max-mag dans le forum Langage
    Réponses: 6
    Dernier message: 09/02/2009, 08h27
  2. erreur javascript pour modifier select avec tableau PHP
    Par omdafer dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 24/03/2008, 12h27
  3. [MySQL] Problème affichage tableau PHP avec données SQL
    Par akalaan dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 25/04/2006, 14h34
  4. Tableau JS avec valeurs PHP
    Par Gobouz dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 19/04/2006, 11h28
  5. [FPDF] Afficher un tableau php avec fdpf
    Par sami69 dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 10/04/2006, 13h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo