SQL Server Selectステートメントは複数の列を選択できないようです

StackOverflow https://stackoverflow.com//questions/25029915

  •  21-12-2019
  •  | 
  •  

質問

現在SQL Server 2008を使用しています.SELECTステートメントは複数の列を選択できないように思われるため、非常にイライラしています。データベーステーブルから選択するたびに、それは何も表示されません。

私のコーディングは次のとおりです。

<?php
// build a query to select records from table authorisation to echo out all queries
$query1  = "SELECT * FROM authorisation  ";

// execute the query you created above and store the result in a php variable
$result1 = sqlsrv_query($con, $query1) or die(print_r( sqlsrv_errors(), true));

// build a query to select records from table authorisation to echo out all queries
while ($group= sqlsrv_fetch_array($result1)  {
    $permissiongroup = $group[0];
    $permissionpages = $group[1];

    echo $permissiongroup;
    echo $permissionpages;
}
?>
.

代わりに2つのクエリを使用し、それが機能します。私は理由はわかりません。

// build a query to select records from table authorisation to echo out all queries
$query1  = "SELECT permissiongroup FROM authorisation ORDER BY permissiongroup";

// execute the query you created above and store the result in a php variable
$result1 = sqlsrv_query($con, $query1) or die(print_r( sqlsrv_errors(), true));

// build a query to select records from table authorisation to echo out all queries
$query2  = "SELECT permissionpages FROM authorisation ORDER BY permissiongroup ";

// execute the query you created above and store the result in a php variable
$result2 = sqlsrv_query($con, $query2) or die(print_r( sqlsrv_errors(), true));

while (($group= sqlsrv_fetch_array($result1)) && ($page= sqlsrv_fetch_array($result2)) ) {
   $permissiongroup = $group['permissiongroup'];
   $pages = $page['permissionpages'];
   echo $permissiongroup;
   echo $pages;
}
.

役に立ちましたか?

解決

これを試してください

<?php
// build a query to select records from table authorisation to echo out all queries
$query1 = "SELECT permissiongroup,permissionpages FROM authorisation ORDER BY permissiongroup";

// execute the query you created above and store the result in a php variable
$result1= sqlsrv_query($con, $query1) or die(print_r( sqlsrv_errors(), true));

// build a query to select records from table authorisation to echo out all queries
while ($group= sqlsrv_fetch_array($result1))  {
    $permissiongroup=$group['permissiongroup'];
    $permissionpages=$group['permissionpages'];

    echo $permissiongroup;
    echo $permissionpages;
}
?>
.

説明(解決策の場合):
これにより問題が解決した場合は、permissiongrouppermissionpagesは、テーブルauthorisationの最初の2つの連続列ではありません。select * from [tablename]は常にTable構造体に存在するのと同じ順序で列名で常にリフルセットを返します。代わりに列名を使用して、Performanceとこのような多くの競合を増やすことをお勧めします。

else
これが役に立たない場合は、お知らせください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top