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 :

Récuperer champs en php / Sql server [SQL-Server]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2017
    Messages : 53
    Points : 22
    Points
    22
    Par défaut Récuperer champs en php / Sql server
    Bonjour,

    En plus de ma question de ce midi, j'aimerais savoir comment je peux faire pour récupérer mes données d'un champs appelé "date" dans ma base SQL server grâce a mon PHP??

    Car j'ai essayer avec un Date time mais sa fonctionne pas et si je fais avec le nom de mon champs qui est "date" mon PHP me met l'erreur suivante : " Notice: Undefined index: date "...

    Et malgré tout ce qu'il y a sur ce forum j'ai rien vu pour m'aider avec ce problème.

    Merci

  2. #2
    Membre éprouvé Avatar de Willy_k
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 540
    Points : 1 067
    Points
    1 067
    Par défaut
    Salut,
    peut être faire un var_dump de la variable pour voir effectivement si la clé date existe, ce qui n'est pas le cas à voir le message d'erreur
    Le bienfait n'est jamais perdu

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2017
    Messages : 53
    Points : 22
    Points
    22
    Par défaut
    Citation Envoyé par Willy_k Voir le message
    Salut,
    peut être faire un var_dump de la variable pour voir effectivement si la clé date existe, ce qui n'est pas le cas à voir le message d'erreur

    Bonjour,
    Merci pour ta réponse mais je ne comprend pas ce que tu veux que je fasse? Car le mot "date" c'est le nom de mon champs pas une variable.
    Donc comment veux-tu que je fasses un var dump de mon champs?

    Merci

  4. #4
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2017
    Messages : 53
    Points : 22
    Points
    22
    Par défaut
    Alors j'ai travaillé dessus depuis hier mais le champs Date existe je l'ai bien dans mes table c'est le champs de nom DATE et de type DATIME et j'ai beau faire tout ce que j'ai pu voir sa fonctionne pas !

    J'ai fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    "SELECT CONVERT(VARCHAR(10),Date, 103) FROM Nom_table"; // Date c'est le nom du champs ici
    "SELECT DATE_FORMAT(date, '%d/%m/%Y) AS date FROM Nom_table";
    "SELECT YEAR('d/m/Y') FROM Nom_table";
    Rien de tout ca fonctionne et sur le net on retrouve ces données la !

    Merci

    Edit :
    Après vérification de ma requête dans SQL server, le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "SELECT CONVERT(VARCHAR(10),Date, 103) FROM Nom_table";
    fonctionne et donc je pense que mon problème vient dans l'exécution de cette requête.

    Si quelqu'un a une idée de comment exécuter cette requête je suis preneuse

    Merci

  5. #5
    Membre éprouvé Avatar de Willy_k
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 540
    Points : 1 067
    Points
    1 067
    Par défaut
    Et est-ce SQL Server nomme la colonne date, c'est pas plutôt un truc comme ça CONVERT(VARCHAR(10),Date, 103) ? Dans ce cas ajouter un alias permettrait de retrouver l'index xxxx comme ça SELECT CONVERT(VARCHAR(10),Date, 103) AS xxxx FROM Nom_table;
    Le bienfait n'est jamais perdu

  6. #6
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2017
    Messages : 53
    Points : 22
    Points
    22
    Par défaut
    Citation Envoyé par Willy_k Voir le message
    Et est-ce SQL Server nomme la colonne date, c'est pas plutôt un truc comme ça CONVERT(VARCHAR(10),Date, 103) ? Dans ce cas ajouter un alias permettrait de retrouver l'index xxxx comme ça SELECT CONVERT(VARCHAR(10),Date, 103) AS xxxx FROM Nom_table;
    Bonjour,

    Vous allez peut être me prendre pour une idiote mais je n'ai pas compris ce que vous m'avez écrit... Est-ce possible de m'expliquer?

    Merci

  7. #7
    Membre éprouvé Avatar de Willy_k
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 540
    Points : 1 067
    Points
    1 067
    Par défaut
    Pas du tout, loin de moi cette idée.
    Je m'explique, quand vous faites SELECT CONVERT(VARCHAR(10),Date, 103) FROM Nom_table; et vous voulez récupérer la valeur du seul champ du "select", PHP ne va pas nommer le champ Date mais CONVERT(VARCHAR(10),Date, 103), mais si vous ajoutez un alias disons c_Date par exemple alors vous pourrez récupérer le champ via c_Date.
    Si vous ne comprenez toujours pas, montrez votre code PHP
    Le bienfait n'est jamais perdu

  8. #8
    Membre confirmé
    Avatar de tse_jc
    Homme Profil pro
    Data Solutions
    Inscrit en
    Août 2010
    Messages
    287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Data Solutions
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2010
    Messages : 287
    Points : 597
    Points
    597
    Billets dans le blog
    4
    Par défaut
    Et est-ce SQL Server nomme la colonne date, c'est pas plutôt un truc comme ça CONVERT(VARCHAR(10),Date, 103) ? Dans ce cas ajouter un alias permettrait de retrouver l'index xxxx comme ça SELECT CONVERT(VARCHAR(10),Date, 103) AS xxxx FROM Nom_table;
    Bonjour,

    Permettez-moi de corriger les inexactitudes de votre propos.
    Donner un alias à l'expression CONVERT(VARCHAR(10),Date, 103) est nécessaire pour rendre votre requête "relationnelle" ou "conforme au niveau relationnel". En revanche cet alias n'a rien à voir avec un quelconque index. Si un index est posé sur cette colonne, il ne peut l'être qu'au niveau de la colonne [Date] (notez ici les crochets) car Date est un nom réservé en T-SQL et en SQL.

    Pour que cela fonctionne, évitez aussi d'attribuer un nom réservé comme alias de colonne ou alors mettez-le entre crochets.

    En espérant avoir pu vous aider.

  9. #9
    Membre éprouvé Avatar de Willy_k
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 540
    Points : 1 067
    Points
    1 067
    Par défaut
    Quand je parlais d'index (sûrement pas utilisé le bon qualificatif) je parlais niveau PHP (tableau associatif). Je m'explique , je ne sais pas si ça s'applique aussi côté SQL SERVER

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $mysqli = new mysqli('localhost', 'root', 'root', 'test_db');
    $stmt = $mysqli->query('SELECT UPPER(nom_pilote) FROM pilotes');
    $result = $stmt->fetch_array();
    echo $result['nom_pilote']; //Undefined index: nom_pilote
    echo $result['UPPER(nom_pilote)']; //ou $result[0] , OK
    Le bienfait n'est jamais perdu

  10. #10
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2017
    Messages : 53
    Points : 22
    Points
    22
    Par défaut
    Merci pour vos réponses, je vais essayer ca de suite et reviens vers vous pour vous dire si ça a fonctionné ou pas.

  11. #11
    Membre confirmé
    Avatar de tse_jc
    Homme Profil pro
    Data Solutions
    Inscrit en
    Août 2010
    Messages
    287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Data Solutions
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2010
    Messages : 287
    Points : 597
    Points
    597
    Billets dans le blog
    4
    Par défaut
    Quand je parlais d'index (sûrement pas utilisé le bon qualificatif) je parlais niveau PHP (tableau associatif). Je m'explique , je ne sais pas si ça s'applique aussi côté SQL SERVER
    Oui cela s'applique. Mais habituez-vous à systématiquement fournir un nom d'alias à une colonne calculée, déjà pour qu'elle reste conforme au niveau relationnel et pour éviter d'avoir des erreurs innatendues d'exécution que cela peut provoquer en certaines circonstances.
    Ensuite, si vous souhaitez optimiser les choses, évitez d'utiliser des recordsets par association au niveau PHP, car cela monopolise plus de ressources des deux côtés. Privilégiez les indexs numériques seuls.

  12. #12
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2017
    Messages : 53
    Points : 22
    Points
    22
    Par défaut
    Citation Envoyé par Willy_k Voir le message
    Pas du tout, loin de moi cette idée.
    Je m'explique, quand vous faites SELECT CONVERT(VARCHAR(10),Date, 103) FROM Nom_table; et vous voulez récupérer la valeur du seul champ du "select", PHP ne va pas nommer le champ Date mais CONVERT(VARCHAR(10),Date, 103), mais si vous ajoutez un alias disons c_Date par exemple alors vous pourrez récupérer le champ via c_Date.
    Si vous ne comprenez toujours pas, montrez votre code PHP
    Bonjour Willy_K,
    Alors j'ai essayer et j'ai toujours un problème.
    La ça m'écrit l'erreur suivante : Notice: Undefined index: Date in

    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
     
     
    	$maRequete = "SELECT CONVERT(VARCHAR(10),Date, 103) AS c_Date FROM  maTable";
     
     
    	$reqResult=sqlsrv_query($conn, $maRequete);// Exécute la requête 
     
    	if( $reqResult === false) {
    			die(print_r( sqlsrv_errors(), true));
    	}
     
    	while($row = sqlsrv_fetch_array( $reqResult, SQLSRV_FETCH_ASSOC)) {
    				echo $row['Date']."<br />"; // permet d'afficher le champs date
    	}
     
    	sqlsrv_free_stmt( $reqResult);
    C'est peut etre que je n'utilise pas le bon code après tout.

    Merci de ton aide.

  13. #13
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2017
    Messages : 53
    Points : 22
    Points
    22
    Par défaut
    Citation Envoyé par tse_jc Voir le message
    Oui cela s'applique. Mais habituez-vous à systématiquement fournir un nom d'alias à une colonne calculée, déjà pour qu'elle reste conforme au niveau relationnel et pour éviter d'avoir des erreurs innatendues d'exécution que cela peut provoquer en certaines circonstances.
    Ensuite, si vous souhaitez optimiser les choses, évitez d'utiliser des recordsets par association au niveau PHP, car cela monopolise plus de ressources des deux côtés. Privilégiez les index numériques seuls.
    Bonjour tse_jc,
    J'ai essayé avec les crochets et pareil que sans crochet ça ne fonctionne pas

    Cordialement

  14. #14
    Membre confirmé
    Avatar de tse_jc
    Homme Profil pro
    Data Solutions
    Inscrit en
    Août 2010
    Messages
    287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Data Solutions
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2010
    Messages : 287
    Points : 597
    Points
    597
    Billets dans le blog
    4
    Par défaut
    Si vous aviez suivi mes indications vous auriez écrit :

    $maRequete = "SELECT CONVERT(VARCHAR(10),[Date], 103) AS c_Date FROM maTable";

  15. #15
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2017
    Messages : 53
    Points : 22
    Points
    22
    Par défaut
    Citation Envoyé par tse_jc Voir le message
    Si vous aviez suivi mes indications vous auriez écrit :

    $maRequete = "SELECT CONVERT(VARCHAR(10),[Date], 103) AS c_Date FROM maTable";
    Vous n'avez surement pas vu mon deuxième message ou je disais que j'avais également essayer avec les crochets mais sans succès... ça me met également ce message d'erreur Notice: Undefined index: Date

  16. #16
    Membre éprouvé Avatar de Willy_k
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 540
    Points : 1 067
    Points
    1 067
    Par défaut
    @tse_jc c'était pour illustrer cette affaire d'index qui a crée une incompréhension...
    @Minimoy's , plutôt $row['C_Date'] ?
    Le bienfait n'est jamais perdu

  17. #17
    Membre confirmé
    Avatar de tse_jc
    Homme Profil pro
    Data Solutions
    Inscrit en
    Août 2010
    Messages
    287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Data Solutions
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2010
    Messages : 287
    Points : 597
    Points
    597
    Billets dans le blog
    4
    Par défaut
    Pour que cette requête fonctionne il faut que
    1) [Date] soit un nom de colonne défini dans votre table (qui existe)
    2) [Date] soit une colonne de type DATE ou DATETIME pour le moins

    @willy_k: Oui si l'erreur est une erreur PHP il faut utiliser c_date dans le tableau.

  18. #18
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2017
    Messages : 53
    Points : 22
    Points
    22
    Par défaut
    Citation Envoyé par tse_jc Voir le message
    Pour que cette requête fonctionne il faut que
    1) [Date] soit un nom de colonne défini dans votre table (qui existe)
    2) [Date] soit une colonne de type DATE ou DATETIME pour le moins

    @willy_k: Oui si l'erreur est une erreur PHP il faut utiliser c_date dans le tableau.
    Oui j'avais bien vérifier tout ca

    Citation Envoyé par Willy_k Voir le message
    @tse_jc c'était pour illustrer cette affaire d'index qui a crée une incompréhension...
    @Minimoy's , plutôt $row['C_Date'] ?
    Merci c'est bien ca j'ai toutes mes dates qui ressorte
    Je vous remercie vraiment d'avoir pris du temps à m'expliquer.



    Juste un dernier point pour savoir si j'ai bien compris. Car le but c'est surtout que je comprenne

    Dans SQL server le champs Date étant réservé pour T-SQL et en SQL, il faut utiliser un alias, sinon il ne peut reconnaitre le champs et vaut mieux le nommé différent dans la table comme Date_clef ?

  19. #19
    Membre confirmé
    Avatar de tse_jc
    Homme Profil pro
    Data Solutions
    Inscrit en
    Août 2010
    Messages
    287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Data Solutions
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2010
    Messages : 287
    Points : 597
    Points
    597
    Billets dans le blog
    4
    Par défaut
    Citation Envoyé par Minimoy's Voir le message
    Oui j'avais bien vérifier tout ca



    Merci c'est bien ca j'ai toutes mes dates qui ressorte
    Je vous remercie vraiment d'avoir pris du temps à m'expliquer.



    Juste un dernier point pour savoir si j'ai bien compris. Car le but c'est surtout que je comprenne

    Dans SQL server le champs Date étant réservé pour T-SQL et en SQL, il faut utiliser un alias, sinon il ne peut reconnaitre le champs et vaut mieux le nommé différent dans la table comme Date_clef ?
    Si vous souhaitez appliquer de bonnes pratiques, il vaut mieux ne pas utiliser de nom réservé comme nom de colonne dans vos tables ET de ne pas les utiliser en Alias.

  20. #20
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2017
    Messages : 53
    Points : 22
    Points
    22
    Par défaut
    Citation Envoyé par tse_jc Voir le message
    Si vous souhaitez appliquer de bonnes pratiques, il vaut mieux ne pas utiliser de nom réservé comme nom de colonne dans vos tables ET de ne pas les utiliser en Alias.
    Oui merci ca je sais ! Quand je fais moi même une table j'évite tout ca mais malheureusement pour celle-ci ce n'est pas moi qui l'ai fait...

    Merci tout de même de vos réponses.

    Cordialement

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

Discussions similaires

  1. probleme php sql server
    Par flydragon dans le forum Apache
    Réponses: 1
    Dernier message: 25/05/2006, 20h21
  2. [SQL-Server] Problème avec la fonction mssql_connect (connexion PHP SQL Server)
    Par flydragon dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 24/05/2006, 11h59
  3. Parametre d'un champ text dans sql server
    Par Arthis dans le forum ASP
    Réponses: 1
    Dernier message: 24/04/2006, 14h21
  4. [SQL-Server] Renseignements php <-> sql server
    Par mic79 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 14/10/2005, 11h36
  5. Remise à zero champ auto-incrementé (SQL Server)
    Par James85 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 26/01/2004, 09h23

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