2017-09-19 3 views
-2

Je reçois ma sortie d'une connexion sqrsrv SQL Server en utilisant php. Je peux imprimer les lignes de chaque colonne, cependant, je ne peux pas imprimer les en-têtes de ces lignes. Comment obtenir les noms des en-têtes/colonnes lorsque je les affiche dans mon navigateur (localhost)?Imprimer avec le nom de colonne ou la vue tabulaire dans le navigateur Web SQLSRV - php

J'ai ma sortie dans le navigateur comme celui-ci,

Joseph Alaba Good 
Craig Nelson Avg 
Benjamin Hennepy Avg 
... 

J'ai besoin comme ça, comment je devrais dans les studios de gestion (avec FName, en-têtes LName et STAUS),

--------------------------- 
|FName |LName |Status| 
--------------------------- 
|Joseph |Alaba |Good | 
|Craig |Nelson |Avg | 
|Benjamin |Hennepy |Avg | 
... 

Après se connectant à la base de données, j'utilise comme ceci pour sélectionner et imprimer,

$sql = "SELECT * FROM tbl"; 
$stmt = sqlsrv_query($conn, $sql); 
if($stmt === false) { 
    die(print_r(sqlsrv_errors(), true)); 
} 

while($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) { 
echo $row['Fname'].$row['LName'].$row['Status']."<br/>"; 
} 

J'ai cherché, je ne pouvais pas trouver le code pour imprimer les en-têtes dans l'instruction echo. Toute suggestion serait appréciée.

Répondre

0

echo 'Fname'.'LName'.'Status'."<br/>";

+0

J'ai essayé, il répète exactement la même nom de variable comme 'Fname',' LName' etc .. et 'row' devrait être là, je suis référencement. –

+1

Les réponses au code uniquement sont déconseillées car elles n'expliquent pas comment elles résolvent le problème dans la question. Veuillez mettre à jour votre réponse pour expliquer ce que cela fait et comment elle résout le problème. S'il vous plaît examiner [Comment puis-je écrire une bonne réponse] (https://stackoverflow.com/help/how-to-answer) – FluffyKitten

1

Vous pouvez utiliser sqlsrv_field_metadata(). Il fonctionne avec les instructions créées avec sqlsrv_prepare et sqlsrv_query. Il renvoie un tableau de tableaux contenant les métadonnées de chaque champ renvoyé par une requête.

Vous pouvez l'utiliser comme ceci:

$sql = "SELECT * FROM tbl"; 
$stmt = sqlsrv_query($conn, $sql); 
if($stmt === false) { 
    die(print_r(sqlsrv_errors(), true)); 
} 

foreach(sqlsrv_field_metadata($stmt) as $field){ 
    echo $field['Name']; // The Name key provides the column name 
} 

while($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) { 
    echo $row['Fname'].$row['LName'].$row['Status']."<br/>"; 
} 
+0

merci, cela semble imprimer l'en-tête/colonne, mais tout imprime juste à côté de l'un l'autre, 'FName LName Statut Joseph' etc. Y at-il un moyen de les casser par colonne? –