dpauxqt1281 2019-06-24 11:41
浏览 66
已采纳

从SQL Server数据库显示表

I am trying to display a table, which i can edit. My table comes up empty, even though there are records in the table. Any help would be appreciated.

code for selecting data: select.php

 <?php  
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
 ?>

<?php  
 $server = "";
$options = array( "UID" => "", "PWD" => "", "Database" => "");
global $conn;
$conn = sqlsrv_connect($server, $options);
if ($conn === false) exit("<pre>" . print_r(sqlsrv_errors(), true));

 $output = '';  
 $sql = "SELECT * FROM Table";  
 $result = sqlsrv_query($conn, $sql);  
 $output .= '  
      <div class="table-responsive">  
           <table class="table table-bordered">  
                <tr>  
                     <th width="10%">ID</th>  
                     <th width="40%">column</th>  
                     <th width="40%">column</th>  
                </tr>';  
 $rows = sqlsrv_num_rows($result);
 if($rows > 0)  
  {  
      if($rows > 10)
      {
          $delete_records = $rows - 10;
      $delete_sql = "DELETE FROM Table LIMIT $delete_records";
      sqlsrv_query($conn, $delete_sql);
  }
  while($row = sqlsrv_fetch_array($result))  
  {  
       $output .= '  
            <tr>  
                 <td>'.$row["id"].'</td>  
                 <td class="column" data-id1="'.$row["id"].'" contenteditable>'.$row["PurchaseID"].'</td>  
                 <td class="LogBookNo" data-id2="'.$row["id"].'" contenteditable>'.$row["LogBookNo"].'</td> 
<td><button type="button" name="delete_btn" data-id3="'.$row["id"].'" class="btn btn-xs btn-danger btn_delete">x</button></td>

       ';  
  }  
  $output .= '  
       <tr>  
            <td></td>  
            <td id="column1" contenteditable></td>  
            <td id="column2" contenteditable></td>
            <td><button type="button" name="btn_add" id="btn_add" class="btn btn-xs btn-success">+</button></td>  
       </tr>  
  ';  
 }  
 else  
 {  
      $output .= '
                <tr>  
                <td></td>  
                <td id="column1" contenteditable></td>  
                    <td id="column2" contenteditable></td>  
                    <td><button type="button" 
name="btn_add" id="btn_add" class="btn btn-xs btn-success">+</button></td>  
           </tr>';  
  }  
 $output .= '</table>  
      </div>';  
 echo $output;  
 ?>
  • 写回答

1条回答 默认 最新

  • duan0818 2019-06-24 13:08
    关注

    Function sqlsrv_num_rows returns the actual rows count when you use a client-side, static, or keyset cursor with sqlsrv_query. You need to use "Scrollable" => SQLSRV_CURSOR_KEYSET in your $options parameter. Another issue with your code, is that T-SQL doesn't have LIMIT keyword. In your case next answers may help.

    Next is an example, based on your code:

    <?php  
    ini_set('display_errors', 1);
    ini_set('display_startup_errors', 1);
    error_reporting(E_ALL);
    ?>
    
    <?php  
    $server = "";
    $options = array( 
        "UID" => "", 
        "PWD" => "", 
        "Database" => ""
    );
    $conn = sqlsrv_connect($server, $options);
    if ($conn === false) {
        exit ("<pre>" . print_r(sqlsrv_errors(), true));
    }   
    
    $output = '';  
    $sql = "SELECT * FROM Table";  
    $result = sqlsrv_query($conn, $sql, array(), array("Scrollable" => SQLSRV_CURSOR_KEYSET));  
    $output .= '  
          <div class="table-responsive">  
               <table class="table table-bordered">  
                    <tr>  
                         <th width="10%">ID</th>  
                         <th width="40%">column</th>  
                         <th width="40%">column</th>  
                    </tr>';  
    $rows = sqlsrv_num_rows($result);
    if ($rows > 0) {  
        /* 
        if ($rows > 10) {
            $delete_records = $rows - 10;
            $delete_sql = "DELETE FROM Table LIMIT $delete_records";
            sqlsrv_query($conn, $delete_sql);
        }
        */
        while($row = sqlsrv_fetch_array($result)) {  
           $output .= '  
                <tr>  
                    <td>'.$row["id"].'</td>  
                    <td class="column" data-id1="'.$row["id"].'" contenteditable>'.$row["PurchaseID"].'</td>  
                    <td class="LogBookNo" data-id2="'.$row["id"].'" contenteditable>'.$row["LogBookNo"].'</td> 
                    <td><button type="button" name="delete_btn" data-id3="'.$row["id"].'" class="btn btn-xs btn-danger btn_delete">x</button></td>
           </tr>';  
        }  
        $output .= '  
           <tr>  
                <td></td>  
                <td id="column1" contenteditable></td>  
                <td id="column2" contenteditable></td>
                <td><button type="button" name="btn_add" id="btn_add" class="btn btn-xs btn-success">+</button></td>  
           </tr>  
      ';  
    } else {  
        $output .= 
            '<tr>  
                    <td></td>  
                    <td id="column1" contenteditable></td>  
                        <td id="column2" contenteditable></td>  
                        <td><button type="button" name="btn_add" id="btn_add" class="btn btn-xs btn-success">+</button></td>  
            </tr>';  
    }  
    
    $output .= '</table>  
          </div>';  
    echo $output;  
    ?>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 请问为什么我配置IPsec后PC1 ping不通 PC2,抓包出来数据包也并没有被加密
  • ¥200 求博主教我搞定neo4j简易问答系统,有偿
  • ¥15 nginx的使用与作用
  • ¥100 关于#VijeoCitect#的问题,如何解决?(标签-ar|关键词-数据类型)
  • ¥15 一个矿井排水监控系统的plc梯形图,求各程序段都是什么意思
  • ¥50 安卓10如何在没有root权限的情况下设置开机自动启动指定app?
  • ¥15 ats2837 spi2从机的代码
  • ¥200 wsl2 vllm qwen1.5部署问题
  • ¥100 有偿求数字经济对经贸的影响机制的一个数学模型,弄不出来已经快要碎掉了
  • ¥15 数学建模数学建模需要