Uso de alias provenientes de una tabla

Resuelto

Hola,

Hago un llamado al foro porque estoy atascado (sin fin) en la harina.

Para evitar cambiar varias veces las mismas informaciones en varias páginas, he creado una tabla simple con 3 campos (ID, Var, Contenido).

La idea es reemplazar una información por una variable llamada por el contenido de un campo de la columna Var y que muestre el contenido correspondiente de la columna Contenido.

Tabla

ID | Var | Contenido

1 | Pdt |Alain DUPONT

2 | MailPdt |Alain.dupont@patate.com

Luego en la página, simplemente colocaré

$Pdt=$alias['Contenido']; en el lugar donde desee tener Alain DUPONT (teniendo mi consulta ya preparada previamente en la citada página)

Consigo bien recuperar mis pares, cada uno en una fila, con la consulta siguiente:

$sql = 'SELECT Var,Contenido FROM Alias'; try{ $req = $bdd->query($sql); $res = $req->fetchAll(); } catch(Exception $e){ // en caso de error : echo " <br>Error! ".$e->getMessage(); echo " <br>Los datos : " ; print_r($res); }

O bien listar todos los $alias['Contenido']; añadiendo un foreach

$sql = 'SELECT Var,Contenido FROM Alias'; try{ $req = $bdd->query($sql); $res = $req->fetchAll(); foreach($res as $alias){ echo "<br>".$alias['Contenido']."<br>"; } } catch(Exception $e){ // en caso de error : echo " <br>Error! ".$e->getMessage(); echo " <br>Los datos : " ; print_r($res); }

Pero después me bloqueo sobre cómo hacerlo... si es factible.

Ya he buscado también en el lado

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

pero sin éxito $Var porque si hay que escribir el valor de $Var a mano ;-(

Gracias a quien pueda darme una pista
 


5 respuestas

  1. Hola,

    Es muy curioso este modo de hacer, ¿por qué no tener simplemente una tabla así:

    ID | Pdt | MailPdt

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

    Eso facilita mucho las cosas porque para cada fila, puedes pedir tu variable Pdt o MailPdt, y ambas informaciones están ligadas juntas (=en la misma fila, vaya)

    Disculpa, sé que no responde a tu pregunta pero me parece realmente sobrecomplicada la organización en tu BD


    0
    1. Hola,

      Simplemente porque en algunas páginas estará el nombre y el tph y en otras será el envío de un correo, etc... Pero sí, la variable en lugar del alias podría ser $var=$alias['nom_colonne'];

      Lo que podría simplificar la tabla es poner Var en único y eliminar el ID que no me servirá.

      La idea es simplemente no tener que recorrer todas las páginas y escrutar todos los códigos cuando hay un cambio en la asociación.

      Pero como dices, eso no hace avanzar las cosas.

      @+
      Daniel

      0
      1. Moderador

        Hola,

        Si estás en la etapa de definir los datos y diseñar un sitio web, deberías concentrarte primero en lo primero.

        Me imagino que en una asociación podríamos tener:

        una tabla miembro: id, nombre, apellido, teléfono, correo electrónico, fecha de inscripción, ...

        una tabla oficina: id, idMiembro, cargo, fecha inicio, fecha fin, ...


        0
        1. Bonjour,

          ¿Y?
          El scmilblick no ha avanzado mucho con eso ;-)

          0
          1. Si algún día alguien tiene el mismo problema o quiere ponerlo en práctica,

            / //Declaración de variables utilizables para los alias $Pdt='$Pdt'; $TphPdt='$TphPdt'; $MailPdt='$MailPdt'; $SG='$SG'; $MailSG='$MailSG'; $Tres='$Tres'; $MailTres='$MailTres'; //Consulta de reemplazo de los alias $sql="SELECT * FROM Alias"; try{ //Preparación de la consulta $req =$bdd->prepare($sql); //ejecución $req->execute(); //se obtienen los resultados $result = $req->fetchAll(); } catch(Exception $e){ // en caso de error : echo " <br>¡Error! ".$e->getMessage(); echo " <br>Los datos : " ; print_r($datas); } //Para asignar los valores a las 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