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

MS SQL Server Discussion :

SQL Server retourne des champs vides


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 20
    Par défaut SQL Server retourne des champs vides
    Bonjour,

    En voulant afficher des champs en PHP, j'ai un symptôme que j'ai déjà remarqué auparavant en ASP:
    Je fais un select * sur une table. si je n'accède pas aux champs dans l'ordre où ils sont retournés, certains champs on une valeur vide, alors que le champ a bien une valeur dans la base.
    Le problème n’apparaît pas avec MySQL.

    Qqu connais-t'il ce problème?

    --Cédric

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Par défaut
    Bonjour,

    Pour ma part, je n'ai jamais rencontré ce problème...

    PHP tourne sous windows ou linux ?
    Comment accèdes-tu à tes données ?

    Est-ce que ça te fais la même chose si au lieu d'un select *, tu nommes tes colonnes :
    SELECT colonne1, Colonne2, ...
    (ce qui par ailleurs serait une bonne chose...)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 20
    Par défaut
    Je viens de faire un petit essai en ASP:
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
     
    <h2>Test 1</h2>
     
        <%
    	id=1
     
    	SQL_query = "SELECT * FROM " & TABLE _
    		& " WHERE id = " & id 
    	Set RS = MyConn.Execute(SQL_query)
    	If (not RS.eof) Then
    		applicant_name = RS("applicant_name")
    		applicant_address = RS("applicant_address")
    		applicant_phone = RS("applicant_phone")
    		applicant_mobile = RS("applicant_mobile")
    		applicant_fax = RS("applicant_fax")
    		applicant_website = RS("applicant_website")
    		applicant_email = RS("applicant_email")
    	End If
    	RS.close
    	set RS = nothing
     
    %>
    <p><%=applicant_name%></p>
    <p><%=applicant_address%></p>
    <p><%=applicant_phone%></p>
    <p><%=applicant_mobile%></p>
    <p><%=applicant_fax%></p>
    <p><%=applicant_website%></p>
    <p><%=applicant_email%></p>
     
    <h2>Test 2</h2>
     
        <%
     
    	SQL_query = "SELECT * FROM " & TABLE _
    		& " WHERE id = " & id 
    	Set RS = MyConn.Execute(SQL_query)
    	If (not RS.eof) Then
    		applicant_website = RS("applicant_website")
    		applicant_fax = RS("applicant_fax")
    		applicant_phone = RS("applicant_phone")
    		applicant_address = RS("applicant_address")
    		applicant_mobile = RS("applicant_mobile")
    		applicant_email = RS("applicant_email")
    		applicant_name = RS("applicant_name")
    	End If
    	RS.close
    	set RS = nothing
     
    %>
    <p><%=applicant_name%></p>
    <p><%=applicant_address%></p>
    <p><%=applicant_phone%></p>
    <p><%=applicant_mobile%></p>
    <p><%=applicant_fax%></p>
    <p><%=applicant_website%></p>
    <p><%=applicant_email%></p>
     
    <h2>Test 3</h2>
     
        <%
     
    	SQL_query = "SELECT applicant_website, applicant_fax, applicant_phone, applicant_address, applicant_mobile, applicant_email, applicant_name FROM " & TABLE _
    		& " WHERE id = " & id 
    	Set RS = MyConn.Execute(SQL_query)
    	If (not RS.eof) Then
    		applicant_website = RS("applicant_website")
    		applicant_fax = RS("applicant_fax")
    		applicant_phone = RS("applicant_phone")
    		applicant_address = RS("applicant_address")
    		applicant_mobile = RS("applicant_mobile")
    		applicant_email = RS("applicant_email")
    		applicant_name = RS("applicant_name")
    	End If
    	RS.close
    	set RS = nothing
     
    %>
    <p><%=applicant_name%></p>
    <p><%=applicant_address%></p>
    <p><%=applicant_phone%></p>
    <p><%=applicant_mobile%></p>
    <p><%=applicant_fax%></p>
    <p><%=applicant_website%></p>
    <p><%=applicant_email%></p>
    Ce qui affiche (les valeurs sont identiques aux noms des champs)
    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
     
    Test 1
    applicant_name
    applicant_address
    applicant_phone
    applicant_mobile
    applicant_fax
    applicant_website
    example@example.com
     
    Test 2
    applicant_name
    applicant_website
    example@example.com
     
    Test 3
    applicant_name
    applicant_address
    applicant_phone
    applicant_mobile
    applicant_fax
    applicant_website
    example@example.com
    Effectivement, en remplacant * par le nom des champs, ca fonctionne.
    Le problème c'est que j'utilise un framework php (yii) qui gère ca tout seul.

  4. #4
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Par défaut
    Citation Envoyé par Ferllings Voir le message
    Effectivement, en remplacant * par le nom des champs, ca fonctionne.
    Le problème c'est que j'utilise un framework php (yii) qui gère ca tout seul.
    Alors comme workaround, tu peux peut etre essayer de faire un foreach sur toutes les colonnes de ton RS avant d'acceder aux colonnes par leur nom...

    C'est pas très propre, mais bon... c'est pas pire qu'un SELECT *

Discussions similaires

  1. [PDO] Query retourne des champs vides
    Par ToonToon1 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 06/01/2011, 16h25
  2. [AC-2003] Requête SQL retournant des champs différents selon une condition
    Par lucmorin dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 23/10/2009, 16h13
  3. Insérer des champs vides dans une requête sql
    Par js8bleu dans le forum Langage SQL
    Réponses: 4
    Dernier message: 19/02/2008, 15h00
  4. [SELECT] Faire un select avec des champs vides
    Par MinsK dans le forum Langage SQL
    Réponses: 1
    Dernier message: 09/08/2005, 00h05

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