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 :

Conversion array en string


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2009
    Messages : 29
    Points : 21
    Points
    21
    Par défaut Conversion array en string
    Bonjour,

    Pour les besoins de mon site, je voudrais créer un formulaire avec des radio button de manière dynamique à partir des valeurs d'un champs de ma base de donnée.

    J'ai donc le script suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    			Veuillez selectionner l'annonce à supprimer :
    		</p>
     
        <form method="post" action="/Simon/controlleur/cont_delete_ocasion>php">
           <p>
             <?php
                for($n=0; $n<count($liste_nom); $n++)
                {
                  echo '<input type="radio" name="nom_annonce" value='. settype($liste_nom[$n],"string").'id='.settype($liste_nom[$n],"string").' />' ;
                  // echo '<input type="radio" name="nom_annonce" value='.$liste_nom[$n].'id='.$liste_nom[$n].' />' ;
                  echo '<br/>'; //formulaire a taille variable
                }
                ?>
                <input type="submit" value="Supprimer">
           </p>
        </form>
    où $ liste_nom est fournie par la fonction suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    function get_name()
    {
    //global $bdd
    global $bdd;
     
      $reponse=$bdd->prepare('SELECT :nom_occasion FROM annonces');
      $reponse->execute (array(
        'nom_occasion'=>"nom_occasion"));
     
    $noms=$reponse->fetchAll();
    return $noms;
     
    }
    quand j’exécute le script j'obtient une erreur "Notice: Array to string conversion" sur la ligne suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo '<input type="radio" name="nom_annonce" value='.$liste_nom[$n].'id='.$liste_nom[$n].' />' ;
    Je comprend que je crée une erreur car je change un type tableau en string. J'ai lu aussi que je pouvais désactiver les notices mais je ne suis pas fan de cette solution.
    J'ai essayé un transtypage avec la ligne suivante mais ça n'a rien changé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo '<input type="radio" name="nom_annonce" value='. settype($liste_nom[$n],"string").'id='.settype($liste_nom[$n],"string").' />' ;
    C'est sûrement une bêtise mais je ne vois pas comment je peux convertir mon array en string pour éviter la génération d'une Notice.

    Merci d'avance pour votre aide !

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Déjà on ne peut pas mettre des noms de colonnes en argument, donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $reponse=$bdd->query('SELECT nom_occasion FROM annonces');
    Concernant ton problème, il n'y a pas a changer le type. Ton tableau contient des chaines toutes prêtes à être affichées.
    Ton erreur est que tu n'attaques pas le bon niveau ; regarde bien la structure que tu obtiens.

    Au passage on ne met pas un count() dans une boucle for, on utilise un foreach ou au moins on traite le count() avant la boucle.
    Et n'oublie pas de mettre des guillemets aux valeurs des attributs.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     foreach ($liste_nom as $row) {
                {
                 echo '<input type="radio" name="nom_annonce" value="'.$row['nom_occasion'].'" /><br/>' ;
                }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2009
    Messages : 29
    Points : 21
    Points
    21
    Par défaut
    merci pour ta réponse rapide !

    Si je comprend bien ce que tu me dit pour le structure , au lieu de $liste_nom[$n] j'aurais du partir sur $liste_nom['nom occasion'].

    J'ai adapté ma query et modifié le for en foreach. Cela fonctionne, j'ai une liste de bouton radio qui me permet de faire mon choix sans avoir de Notice. Par contre je suis étonné, je pensais que value="'.$row['nom_occasion'].'" allait me mettre le nom à côté de chaque bouton mais ça n'est pas le cas. J'ai regardé pendant la soirée pour l'avoir mais je sèche

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Comme tu le dis : il faut l'ajouter à côté.
    De préférence dans un <label>.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2009
    Messages : 29
    Points : 21
    Points
    21
    Par défaut
    effectivement j'avais la solution sous mon nez! j'ai mis le label et tout fonctionne comme je le désire.

    Merci beaucoup pour votre aide!

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Avec ta boucle for ça aurait été
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $liste_nom[$n]['nom occasion']
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Formulaire erreur Array to string conversion
    Par akamaru dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 19/12/2008, 11h02
  2. Conversion array en string possible ?
    Par Invité dans le forum Débuter
    Réponses: 9
    Dernier message: 18/07/2008, 18h20
  3. Réponses: 2
    Dernier message: 28/12/2007, 12h09
  4. [D6] Conversion Array of String en String
    Par wizdom dans le forum Delphi
    Réponses: 2
    Dernier message: 23/05/2006, 17h01

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