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 :

mysql_fetch_object champ base de données


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2008
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 171
    Points : 106
    Points
    106
    Par défaut mysql_fetch_object champ base de données
    Bonjour,

    j'ai un petit soucis avec le pointage d'un de mes champs...

    Voici ma requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT * FROM offreemploi 
                  INNER JOIN secteur ON offreemploi.secteur_offre = secteur.id 
                  INNER JOIN region ON offreemploi.lieu_offre_emploi = region.id 
                  ORDER BY date_publi_offre_emploi 
                  DESC LIMIT '.$premiereEntree.', '.$messagesParPage.'';
    j'ai donc deux table : secteur et région, dans un autre code ces deux table son en liaison pour un affichage en liste déroulante lié et donc avec les même champs (id, nom)

    or ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    while($donnees_messages=mysql_fetch_object($retour_messages)){
    echo '<p class="secteur" >Secteur : '.$donnees_messages->nom.'</p>';
     
    echo '<td name=lieuPoste id=lieuPoste>'.$donnees_messages->nom.'</td></tr>';
     
    }
    comme j'aimerais afficher le secteur de mon offre d'emploi mais aussi la localisation (région) ben je me retrouve à pointer vers le même champ (nom).

    Est-il possible de préciser la table tout simplement ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $donnees_messages->nom
    en disant ben c'est vers le champ nom mais de la table secteur puis pour l'autre champ de la table region ?

    j'ai essayé des trucs du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $donnees_messages->secteur(nom) ou $donnees_messages->secteur.nom
    vous avez une idée ? j'ai pensé à une alias pour les deux champs id de secteur et région mais je sais pas ou le faire car dans mon select j'ai un "*" et je ne veux pas écrire tous les champs. On peut faire un alias dans le inner join ?

  2. #2
    Membre régulier
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2008
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 171
    Points : 106
    Points
    106
    Par défaut
    Lol je me répond tout seul !!!

    voila la solution je ne sais pas si elle est juste et propre mais ça marche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT *, secteur.nom as secnom, region.nom as regnom FROM
    bonne journée

  3. #3
    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
    Points : 3 947
    Points
    3 947
    Par défaut
    Salut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT *, secteur.nom as secnom, region.nom as regnom FROM
    Pourquoi alors mettre (systématiquement) un : SELECT * ?
    Pourquoi ne pas mettre dans le SELECT uniquement les champs dont tu as besoin ?

    Au passage, il est possible de mettre des alias pour les tables aussi.
    Exemple :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT s.nom AS secnom, r.nom as regnom
    FROM offreemploi AS oe
    INNER JOIN secteur AS s ON oe.secteur_offre = s.id 
    INNER JOIN region AS r ON oe.lieu_offre_emploi = r.id 
    ORDER BY oe.date_publi_offre_emploi
    Du fait que les alias existent (champs et tables), il est inutile de reprendre le nom de la table au niveau des noms des champs.
    -> offre suffit au lieu de : secteur_offre
    idem pour -> lieu au lieu de : lieu_offre_emploi
    idem pour -> date_publi au lieu de : date_publi_offre_emploi

    Il n'y a pas lieu de s'imposer des noms de champs à rallonge.

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

Discussions similaires

  1. Mise à jour automatique champ base de donnée
    Par xav3601 dans le forum Visio
    Réponses: 0
    Dernier message: 16/06/2009, 16h12
  2. Insertion champs base de données
    Par shabi dans le forum Hibernate
    Réponses: 1
    Dernier message: 17/04/2008, 17h47
  3. Mise à Jour Champ Base de Donnée
    Par arjo54 dans le forum IHM
    Réponses: 0
    Dernier message: 10/10/2007, 16h38
  4. Champs Base de données
    Par Igmar dans le forum VB.NET
    Réponses: 1
    Dernier message: 12/06/2007, 10h17
  5. Réponses: 6
    Dernier message: 26/04/2007, 12h37

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