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 :

PHP SQL : Renommer un champ


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 13
    Par défaut PHP SQL : Renommer un champ
    Bonjour,
    je souhaiterais renommer un champ dans ma requête qui s'appelle date par un autre nom du genre "date_rec", mais je ne trouve pas comment faire puisque la où j'appelle mon champ c'est au niveau du "WHERE" et le "WHERE date as nouveau_nom" ne marche pas ...
    voici la ligne où est mon problème

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql_requette="SELECT MAX(Etoday) as maximum  FROM solaire_valeurs_moyennes_15 WHERE date LIKE ?";

    Si possible je ne voudrais pas modifier ma table.
    Merci d'avance.

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

    Citation Envoyé par reborn1235 Voir le message
    ...renommer un champ dans ma requête qui s'appelle date par un autre nom du genre "date_rec"...
    • SQL ALTER TABLE

    Sinon, tu le fais à la main dans phpmyadmin.
    N.B. On ne parle pas de "champ", mais de "colonne".

    ...Si possible je ne voudrais pas modifier ma table...
    Alors là, je ne vois pas ce que tu veux faire...

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 13
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    Alors là, je ne vois pas ce que tu veux faire...
    Ce que je voudrais c'est associer un autre nom à la colonne là où j'écris le code de la même manière que lorsqu'on fait SELECT nom_a_modifier as nouveau_nom.

    Mon programme demande à l'utilisateur de saisir une date sur un formulaire et je récupère cette date pour afficher les élements de ma table correspondant à cette date seulement petit problème dans les éléments de ma table il y a une colonne qui s'appelle date et ça me gène pour l'afficher.

    voici mon code
    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
    18
    19
    20
    21
    22
    23
    /*on créer une requête*/
    $sql_requette="SELECT MAX(Etoday) as maximum  FROM solaire_valeurs_moyennes_15 WHERE date LIKE ?";
    
    /*récupere la date choisie par l'utilisateur*/
    $ma_date=$_POST['ma_date'].'%';
    
    /*on prépare la requête*/
    $reponse =  $connexion->prepare($sql_requette);
    $reponse->execute(array($ma_date));?>
    
    <!--affichage des reponses tant qu'il y a des resultats --> 
    <table class="bdd_formulaire">  
        <?php while ($ligne = $reponse->fetch(PDO::FETCH_ASSOC))
        {?>
            <tr>
            <!--<td> A la date*/  /*echo $ligne['date']; -->
          <td> <?php  echo "L'énergie max était de : " .$ligne['maximum'];?> </td>  <!--joules </td>-->
        
            </tr>
       <?php } ?> <!-- fin du while -->
    </table>
    <?php
    $reponse->closeCursor(); /*-termine le traitement de la requête*/

  4. #4
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 507
    Par défaut
    Salut,

    Si tu veux réutiliser des alias dans ta requête, il faut passer par having.

    Donc la requête devient :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT MAX(Etoday) as maximum,date as une_date  
    FROM solaire_valeurs_moyennes_15 
    group by (un id unique est préférable ici)
    having une_date=?;

  5. #5
    Invité
    Invité(e)
    Par défaut
    Pour pouvoir "échapper" le nom de la colonne, on doit l'écrire avec des `...` :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql_requette="SELECT MAX(Etoday) as maximum  FROM solaire_valeurs_moyennes_15 WHERE `date` LIKE ?";
    De toute façon, il faut éviter de nommer les colonnes avec des mots clefs réservés du SQL.

    A ta place, je changerais le nom de la colonne en "date_mesure", par exemple.
    Ça a, en plus, l'avantage d'être plus significatif.

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 13
    Par défaut
    Ok merci beaucoup,
    j'ai mis WHERE `date` mais lorsque je fais <?php echo $ligne[`date`]; ?> ça ne fonctionne pas pour afficher la date, c'est parce que je n'ai mis qu'un seul élément dans mon SELECT que je ne peux pas afficher les autres éléments de la table ou c'est toujours un problème de nom ?

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 13
    Par défaut
    Oui je sais qu'il faut éviter les noms comme ça mais là c'était une table que mon prof m'a partager, les noms et valeurs étaient déjà tous écris.
    Je verrais pour changer le nom de la colonne avec la méthode que vous m'avez marquer plus haut, merci

  8. #8
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 13
    Par défaut
    @Toufik83

    Merci de m'aider,
    Je ne comprend pas ce que je dois mettre dans le group by ici..
    Mais lorsque je fais
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT MAX(Etoday) as maximum,date as date_rec  
    FROM solaire_valeurs_moyennes_15 
    WHERE date_rec LIKE ?";
    ça ne fonctionne pas

  9. #9
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 507
    Par défaut
    Tu n'as pas un id unique dans la table solaire_valeurs_moyennes_15 ?

    Si oui, met le dans la requête et le group by puis tu remplaces le where par having.

    Ce qui donne :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT id,MAX(Etoday) as maximum,date as date_rec  
    FROM solaire_valeurs_moyennes_15 
    group by id
    having date_rec LIKE ?;

    Remarque : la solution de jreaux62 fonctionne aussi, je voudrais seulement te montrer comment utiliser le having lorsqu'on a besoin de réutiliser les alias.

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

Discussions similaires

  1. [SQL-Server] Récuperer champs en php / Sql server
    Par Minimoy's dans le forum PHP & Base de données
    Réponses: 19
    Dernier message: 10/07/2017, 08h38
  2. [MySQL] PHP/SQL n'afficher que les champs vides
    Par rouly dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 03/02/2010, 05h47
  3. [ADO][Access][SQL]Renommer un champ
    Par dleu dans le forum Bases de données
    Réponses: 3
    Dernier message: 27/08/2005, 19h03
  4. [SQL] Renommer un champ dans une requête
    Par martonpylon12 dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 15/11/2003, 01h59
  5. [SQL] Compter des champs indépendement l'un de l'autre
    Par rippey dans le forum Requêtes et SQL.
    Réponses: 11
    Dernier message: 29/10/2003, 15h35

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