Utilisation d'alias issu d'une table

Résolu
danielos77 Messages postés 115 Date d'inscription   Statut Membre Dernière intervention   -  
danielos77 Messages postés 115 Date d'inscription   Statut Membre Dernière intervention   -

Bonjour,

Je fais appelle au forum car je pédale (sans fin) dans la semoule.

Pour éviter de changer x fois les mêmes informations dans des pages, j'ai créé une table simple avec 3 champs (ID, Var, Contenu).

L'idée est de mettre à la place d'une information une variable nommée par le contenu d'un champ de la colonne Var et que cela affiche le contenu correspondant de la colonne Contenu.

Table

ID | Var | Contenu

1 | Pdt |Alain DUPONT

2 | MailPdt |Alain.dupont@patate.com

Ensuite dans la page, je placerai simplement

$Pdt=$alias['Contenu']; à l'endroit où je souhaiterais avoir Alain DUPONT (en ayant ma requête mise en amont sur ladite page)

J'arrive bien à récupérer mes couples, chacun dans un tableau, avec la requête suivante :

$sql = 'SELECT Var,Contenu FROM Alias';
        try{
            $req = $bdd->query($sql);
            $res = $req->fetchAll();
           }
         catch(Exception $e){
         // en cas d'erreur :
         echo " <br>Erreur ! ".$e->getMessage();
         echo " <br>Les datas : " ;
         print_r($res);
         }

Ou à lister tous les $alias['Contenu']; en rajoutant un foreach

$sql = 'SELECT Var,Contenu FROM Alias';
    try{
        $req = $bdd->query($sql);
        $res = $req->fetchAll();

        foreach($res as $alias){
        echo "<br>".$alias['Contenu']."<br>";  
        }
       }
        catch(Exception $e){
        // en cas d'erreur :
        echo " <br>Erreur ! ".$e->getMessage();
        echo " <br>Les datas : " ;
        print_r($res);
        }

Mais après je bloque sur la façon de faire... si c'est faisable.

J'ai bien chercher aussi du côté 

$sql="SELECT Contenu FROM Alias where Var= :var";
$requete =$bdd->prepare($sql);1
$requete->bindValue(":var", $Var, PDO::PARAM_STR);
$requete->execute();

mais sans succès $Var car s'il faut saisir la valeur de $Var à la main ;-(

Merci à celui ou celle qui pourra me donner une piste
 


Windows / Firefox 152.0

5 réponses

  1. Grandasse_ Messages postés 981 Date d'inscription   Statut Membre Dernière intervention   618
     

    Bonjour,

    C'est très curieux comme façon de faire, pourquoi ne pas avoir simplement une table de la sorte : 

    ID | Pdt | MailPdt

    1 | Alain DUPONT | Alain.dupont@patate.com
    2 | Michèle MICHU | mich@michu.com
    ...

    Ça facilite beaucoup les choses parce que pour chaque ligne, tu peux demander ta variable Pdt ou MailPdt, et les deux informations sont liées ensemble (=sur une même ligne quoi)

    Désolé, je sais que ça ne répond pas à ta question mais je trouve ça vraiment sur-compliqué comme organisation dans ta BDD


    0
  2. danielos77 Messages postés 115 Date d'inscription   Statut Membre Dernière intervention   2
     

    Bonjour,

    Tout simplement parce que sur certaines pages il y aura le nom et le tph sur d'autre ce sera l'envoi d'un mail, etc... Mais oui la variable en place de l'alias pourrait être $var=$alias['nom_colonne'];

    Ce qui pouvait simplifier la table c'est de mettre Var en unique et de supprimer l'ID qui ne me servira pas.

    L'idée est simplement de ne pas avoir à faire le tour de toute les pages et de scruter tous les codes lorsqu'il y a un changement dans l'association.

    Mais comme tu dis, ça ne fait pas avancer la chose.

    @+
    Daniel

    0
  3. jee pee Messages postés 9450 Date d'inscription   Statut Modérateur Dernière intervention   9 994
     

    Bonjour,

    Si tu en es au stade de la définition des données et de la conception d'un site web, tu devrais te concentrer d'abord sur la première.

    J'imagine que dans une association on pourrait avoir :

    une table membre : id, nom, prénom,tel, email, date inscription, ...

    une table bureau : id, membre.id, fonction.id, date début, date fin, ...

    une table fonction : id, fonction


    0
  4. danielos77 Messages postés 115 Date d'inscription   Statut Membre Dernière intervention   2
     

    Bonjour,

    Et ?
    Le scmilblick n'a pas beaucoup avancé avec ça ;-)

    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. danielos77 Messages postés 115 Date d'inscription   Statut Membre Dernière intervention   2
     

    Si un jour qq'un rencontre le même souci ou souhaite mettre ça en place,

    / //Déclaration des variables utilisables pour les alias
        $Pdt='$Pdt';
        $TphPdt='$TphPdt';
        $MailPdt='$MailPdt';
        $SG='$SG';
        $MailSG='$MailSG';
        $Tres='$Tres';
        $MailTres='$MailTres';
        
        //Requête de remplacement des alias
        $sql="SELECT * FROM Alias";
        try{
        //Préparation requete
        $req =$bdd->prepare($sql);
        //execution
        $req->execute();
        //on récupère les résultats
        $result = $req->fetchAll();
        }
        catch(Exception $e){
        // en cas d'erreur :
        echo " <br>Erreur ! ".$e->getMessage();
        echo " <br>Les datas : " ;
        print_r($datas);
        }
        
        //Pour affecter les valeurs aux variables
        if(isset($Pdt)){
        $Pdt=$result[0]['Contenu'];
        }
        if(isset($TphPdt)){
        $TphPdt=$result[1]['Contenu'];
        }
        if(isset($MailPdt)){
        $MailPdt=$result[2]['Contenu'];
        }
        if(isset($SG)){
        $SG=$result[3]['Contenu'];
        }
        if(isset($MailSG)){
        $MailSG=$result[4]['Contenu'];
        }
        if(isset($Tres)){
        $Tres=$result[5]['Contenu'];
        }
        if(isset($MailTres)){
        $MailTres=$result[6]['Contenu'];
        }        
    

     Have a nice time
    Daniel

    0