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

PHP & Base de données Discussion :

MySQL - PHP : tableau assoc nom du champ + valeur


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 91
    Par défaut MySQL - PHP : tableau assoc nom du champ + valeur
    BOnjour

    Débutant en php je tente de recup, via un recordset
    un tableau associatif contenant le nom des champs sélectionnés
    dans la requête et leur valeur.

    Ex.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT ID, Name, Email, f1, f2, .... fn 
    FROM TB1 
    WHERE ID=1 LIMIT 1;
    Je dois ensuite batir une querystring du type
    &id=1&name=Joe&email=joe@domain.net&f1=val_f1&[....]&fn=val_fn

    Je veux réaliser en gros :
    for Chaque_champ_du_rs
    $qs+=Chaque_champ_du_rs[Name]."=".Chaque_champ_du_rs[Value]."&";
    next

    En ASP ca donne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For Each oFld IN oRs.Fields
    sQs=sQS & oFld.Name & "=" & oFld.Value & "&"
    Next
    J'ai essayé les fonctions :
    # mysql_ fetch_ array
    # mysql_ fetch_ assoc
    # mysql_ fetch_ field
    # mysql_ fetch_ lengths
    # mysql_ fetch_ object
    # mysql_ fetch_ row

    Mais là je suis un peu paumé.
    Un coup de main, un bout de pain svp.
    Merci

  2. #2
    Membre chevronné
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2009
    Messages : 236
    Par défaut
    Pourrais-tu exprimer ton problème sans quoi il est difficile de t'aider.

    Ta requête semble correcte bien que le limit ne soit pas indispensable vus que tu travaille sur ID et que ce champ doit être ta clé primaire.

    Pour ta chaîne tu peut faire :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $string="$id=".$ma_requete["id"]."$name=".$ma_requete["name"]."..."

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 91
    Par défaut
    0/ Merci gwharl de tes commentaires/réponses

    1/
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $string="$id=".$ma_requete["id"]."$name=".$ma_requete["name"]."..."
    C'est justement ce que je ne veux pas faire, càd avoir à coder
    en dur les params.
    Le nombre de champs sélectionnés dans la requête et leur nom étant variables.

    2/ J'ai modifié la discussion initiale, car effectivement, c'était pas clair

  4. #4
    Membre chevronné
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2009
    Messages : 236
    Par défaut
    Pour ce qui est de ta requête je te conseillerais de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT * FROM TB1 WHERE ID=1;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $row = mysql_fetch_row($ma_requete);
     
    foreach($les_champs_selectionnes as $un_champ_selectionne)
    {
        $chaine .= $un_champ_selectionne."=".$row['$un_champ_selectionne']."&";
    }
    Je suppose dans ce cas que tes noms de variable de tes champs selectionnés sont identique au nom des champs dans ta table.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 91
    Par défaut
    k merci, je teste cela

  6. #6
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    Si la requête retourne 1 seule ligne car l'ID est unique, de même que si les noms en paramètre sont les même que les champs, alors il y a plus simple encore à mon sens.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $donnes = mysql_fetch_assoc($ma_requete);
    $url = http_build_query($donnes);

Discussions similaires

  1. Réponses: 4
    Dernier message: 08/03/2011, 18h16
  2. PHP MySQL Signe "-" (moins) dans nom de champ
    Par superseba888 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 24/03/2009, 19h01
  3. Réponses: 1
    Dernier message: 04/04/2007, 11h03
  4. tableau et nom de champ
    Par totoche dans le forum Flash
    Réponses: 5
    Dernier message: 06/11/2006, 13h32
  5. Récupérer une valeur d'une BDD p/r au nom du champ
    Par [DreaMs] dans le forum Delphi .NET
    Réponses: 1
    Dernier message: 20/01/2006, 13h01

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