لا يبدو أن عبارة تحديد SQL SERVER قادرة على تحديد أكثر من عمود واحد

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

  •  21-12-2019
  •  | 
  •  

سؤال

أستخدم حاليًا SQL Server 2008.أشعر بالإحباط الشديد لأن بيان التحديد الخاص بي لا يبدو أنه قادر على تحديد أكثر من عمود واحد.في كل مرة أقوم بالاختيار من جدول قاعدة البيانات، لا يعرض أي شيء.

الترميز الخاص بي هو كما يلي:

<?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;
}
هل كانت مفيدة؟

المحلول

جرب هذا

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

شرح (إذا كان هذا هو الحل):
إذا كان هذا يحل مشكلتك، فهذا يعني permissiongroup و permissionpages ليست أول عمودين متتاليين من الجدول authorisation. select * from [tablename] سيُرجع دائمًا مجموعة النتائج بأسماء الأعمدة بنفس الترتيب الموجود في بنية الجدول.يُنصح باستخدام أسماء الأعمدة بدلاً من ذلك * لزيادة الأداء والعديد من الصراعات مثل هذا.

آخر
في حالة أن هذا لا يساعد، واسمحوا لي أن أعرف.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top