SQL SERVER select语句似乎无法选择多个列

时间:2014-07-30 06:16:34

标签: php sql database sqlsrv

我目前正在使用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;
}
?>

我使用了两个查询而且它有效。我不知道为什么。

// 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;
}

1 个答案:

答案 0 :(得分:0)

试试这个

<?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的前两个连续列。 select * from [tablename]将始终以与表结构中存在的顺序相同的顺序返回具有列名的结果集。建议使用列名而不是*来提高性能以及更多类似的冲突。

<强> ELSE
如果这没有帮助,请告诉我。