Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用Ajax从数据表的MSSQL查询中获取数据_Php_Jquery_Sql Server_Ajax_Datatable - Fatal编程技术网

Php 如何使用Ajax从数据表的MSSQL查询中获取数据

Php 如何使用Ajax从数据表的MSSQL查询中获取数据,php,jquery,sql-server,ajax,datatable,Php,Jquery,Sql Server,Ajax,Datatable,这是我从中得到的代码 我希望使用ajax从SQL查询中获取数据。这是我的SQL查询: $tsql = "SELECT * FROM [dbo].[ITEM_MASTER] A INNER JOIN [dbo].[STOCK] B ON B.ItemId = A.ItemId "; $result = sqlsrv_query($conn, $tsql, array(), array( "Scrollable" => SQLSRV_CURSOR_KEYSET )); if (!$resul

这是我从中得到的代码

我希望使用ajax从SQL查询中获取数据。这是我的SQL查询:

$tsql = 
"SELECT *
FROM [dbo].[ITEM_MASTER] A
INNER JOIN
[dbo].[STOCK] B
ON
B.ItemId = A.ItemId
";
$result = sqlsrv_query($conn, $tsql, array(), array( "Scrollable" => SQLSRV_CURSOR_KEYSET ));
if (!$result) {
 die("Query to show fields from table failed");
}

while($row=sqlsrv_fetch_array($result))
{
    $ItmId = $row['ItemId'];
    $ItmName = $row['ItemName'];
    $ItmType = $row['ItemType'];
    $ItmGroup = $row['ItemGroup'];
    $ItmClass = $row['ItemClass'];
    $ItmSerialNum = $row['ItemSerialNum'];
    $ItmUOM = $row['ItemUOM'];
    $StkQty = $row['StockQuantity'];
    $StkId = $row['StockId'];
 }
在ajax部分,我只调用变量的名称,如
$ItmId
或我在while循环中所述。 可能吗?如果是,怎么做?因为我对AJAX一无所知


更新

数据被推送到第二个参数,并且没有显示
ItmId
?无论我是否更改
$data:ItmName
,它都只是基于数组显示,并显示其他内容

$(document).ready(function() {
    var table = $('#table').DataTable( {
        "ajax": {
            "url": "table_data.php",
            "type": "POST"
            },
        "columns": [
            {
                "class":          'details-control',
                "orderable":      false,
                "data":           null,
                "defaultContent": ''
            },
            { "$data": "ItmId"  },
            { "$data": "ItmName" },
            { "$data": "ItmGroup"},
            { "$data": "ItmClass"}
    ],
        "order": [[1, 'asc']]
    } );

首先,您需要更改此行:

"ajax": "../ajax/data/objects.txt", //here
指向将运行sql查询以获取数据的实际文件:例如:

"ajax": {"url": "path/to/phpfile.php", "type": "POST"}
$data = array();
while($row=sqlsrv_fetch_array($result))
{
    $ItmId = $row['ItemId'];
    $ItmName = $row['ItemName'];
    $ItmType = $row['ItemType'];
    $ItmGroup = $row['ItemGroup'];
    $ItmClass = $row['ItemClass'];
    $ItmSerialNum = $row['ItemSerialNum'];
    $ItmUOM = $row['ItemUOM'];
    $StkQty = $row['StockQuantity'];
    $StkId = $row['StockId'];

    $data['data'][] = array($ItmId, $ItmName, $ItmType,....etc);
 }
 echo json_encode($data);
data:
    array(
        ItmId,
        ItmName,
        ..etc
    ),
    array(
        ItmId,
        ItmName,
        ..etc
    ),
您需要使
while
循环如下:

"ajax": {"url": "path/to/phpfile.php", "type": "POST"}
$data = array();
while($row=sqlsrv_fetch_array($result))
{
    $ItmId = $row['ItemId'];
    $ItmName = $row['ItemName'];
    $ItmType = $row['ItemType'];
    $ItmGroup = $row['ItemGroup'];
    $ItmClass = $row['ItemClass'];
    $ItmSerialNum = $row['ItemSerialNum'];
    $ItmUOM = $row['ItemUOM'];
    $StkQty = $row['StockQuantity'];
    $StkId = $row['StockId'];

    $data['data'][] = array($ItmId, $ItmName, $ItmType,....etc);
 }
 echo json_encode($data);
data:
    array(
        ItmId,
        ItmName,
        ..etc
    ),
    array(
        ItmId,
        ItmName,
        ..etc
    ),
您应该注意,您需要实际表(html)中列的确切数量。 此外,您的json应该如下所示:

"ajax": {"url": "path/to/phpfile.php", "type": "POST"}
$data = array();
while($row=sqlsrv_fetch_array($result))
{
    $ItmId = $row['ItemId'];
    $ItmName = $row['ItemName'];
    $ItmType = $row['ItemType'];
    $ItmGroup = $row['ItemGroup'];
    $ItmClass = $row['ItemClass'];
    $ItmSerialNum = $row['ItemSerialNum'];
    $ItmUOM = $row['ItemUOM'];
    $StkQty = $row['StockQuantity'];
    $StkId = $row['StockId'];

    $data['data'][] = array($ItmId, $ItmName, $ItmType,....etc);
 }
 echo json_encode($data);
data:
    array(
        ItmId,
        ItmName,
        ..etc
    ),
    array(
        ItmId,
        ItmName,
        ..etc
    ),

基本上有一个行数组。

首先,您需要更改此行:

"ajax": "../ajax/data/objects.txt", //here
指向将运行sql查询以获取数据的实际文件:例如:

"ajax": {"url": "path/to/phpfile.php", "type": "POST"}
$data = array();
while($row=sqlsrv_fetch_array($result))
{
    $ItmId = $row['ItemId'];
    $ItmName = $row['ItemName'];
    $ItmType = $row['ItemType'];
    $ItmGroup = $row['ItemGroup'];
    $ItmClass = $row['ItemClass'];
    $ItmSerialNum = $row['ItemSerialNum'];
    $ItmUOM = $row['ItemUOM'];
    $StkQty = $row['StockQuantity'];
    $StkId = $row['StockId'];

    $data['data'][] = array($ItmId, $ItmName, $ItmType,....etc);
 }
 echo json_encode($data);
data:
    array(
        ItmId,
        ItmName,
        ..etc
    ),
    array(
        ItmId,
        ItmName,
        ..etc
    ),
您需要使
while
循环如下:

"ajax": {"url": "path/to/phpfile.php", "type": "POST"}
$data = array();
while($row=sqlsrv_fetch_array($result))
{
    $ItmId = $row['ItemId'];
    $ItmName = $row['ItemName'];
    $ItmType = $row['ItemType'];
    $ItmGroup = $row['ItemGroup'];
    $ItmClass = $row['ItemClass'];
    $ItmSerialNum = $row['ItemSerialNum'];
    $ItmUOM = $row['ItemUOM'];
    $StkQty = $row['StockQuantity'];
    $StkId = $row['StockId'];

    $data['data'][] = array($ItmId, $ItmName, $ItmType,....etc);
 }
 echo json_encode($data);
data:
    array(
        ItmId,
        ItmName,
        ..etc
    ),
    array(
        ItmId,
        ItmName,
        ..etc
    ),
您应该注意,您需要实际表(html)中列的确切数量。 此外,您的json应该如下所示:

"ajax": {"url": "path/to/phpfile.php", "type": "POST"}
$data = array();
while($row=sqlsrv_fetch_array($result))
{
    $ItmId = $row['ItemId'];
    $ItmName = $row['ItemName'];
    $ItmType = $row['ItemType'];
    $ItmGroup = $row['ItemGroup'];
    $ItmClass = $row['ItemClass'];
    $ItmSerialNum = $row['ItemSerialNum'];
    $ItmUOM = $row['ItemUOM'];
    $StkQty = $row['StockQuantity'];
    $StkId = $row['StockId'];

    $data['data'][] = array($ItmId, $ItmName, $ItmType,....etc);
 }
 echo json_encode($data);
data:
    array(
        ItmId,
        ItmName,
        ..etc
    ),
    array(
        ItmId,
        ItmName,
        ..etc
    ),

基本上有一个行数组。

根据Darren的回答,我这样解决它:

"ajax": {"url": "path/to/phpfile.php", "type": "POST"}
$data = array();
while($row=sqlsrv_fetch_array($result))
{
    $ItmId = $row['ItemId'];
    $ItmName = $row['ItemName'];
    $ItmType = $row['ItemType'];
    $ItmGroup = $row['ItemGroup'];
    $ItmClass = $row['ItemClass'];
    $ItmSerialNum = $row['ItemSerialNum'];
    $ItmUOM = $row['ItemUOM'];
    $StkQty = $row['StockQuantity'];
    $StkId = $row['StockId'];

    $data['data'][] = array($ItmId, $ItmName, $ItmType,....etc);
 }
 echo json_encode($data);
data:
    array(
        ItmId,
        ItmName,
        ..etc
    ),
    array(
        ItmId,
        ItmName,
        ..etc
    ),
table_data.php

    $data = array();

    while($row=sqlsrv_fetch_array($result))
    {
    $data['data'][] = array(
                        'ItmId'          => $row['ItemId'],
                        'ItmName'        => $row['ItemName'],
                        'ItmType'        => $row['ItemType'],
                        'ItmGroup'       => $row['ItemGroup'],
                        'ItmClass'       => $row['ItemClass'],
                        'ItmSerialNum'   => $row['ItemSerialNum'],
                        'ItmUOM'         => $row['ItemUOM'],
                        'StkQty'         => $row['StockQuantity'],
                        'StkId'          => $row['StockId']
                        );

    }

   echo json_encode($data);
table.php(其中显示我的html)


根据Darren的回答,我这样解决:

"ajax": {"url": "path/to/phpfile.php", "type": "POST"}
$data = array();
while($row=sqlsrv_fetch_array($result))
{
    $ItmId = $row['ItemId'];
    $ItmName = $row['ItemName'];
    $ItmType = $row['ItemType'];
    $ItmGroup = $row['ItemGroup'];
    $ItmClass = $row['ItemClass'];
    $ItmSerialNum = $row['ItemSerialNum'];
    $ItmUOM = $row['ItemUOM'];
    $StkQty = $row['StockQuantity'];
    $StkId = $row['StockId'];

    $data['data'][] = array($ItmId, $ItmName, $ItmType,....etc);
 }
 echo json_encode($data);
data:
    array(
        ItmId,
        ItmName,
        ..etc
    ),
    array(
        ItmId,
        ItmName,
        ..etc
    ),
table_data.php

    $data = array();

    while($row=sqlsrv_fetch_array($result))
    {
    $data['data'][] = array(
                        'ItmId'          => $row['ItemId'],
                        'ItmName'        => $row['ItemName'],
                        'ItmType'        => $row['ItemType'],
                        'ItmGroup'       => $row['ItemGroup'],
                        'ItmClass'       => $row['ItemClass'],
                        'ItmSerialNum'   => $row['ItemSerialNum'],
                        'ItmUOM'         => $row['ItemUOM'],
                        'StkQty'         => $row['StockQuantity'],
                        'StkId'          => $row['StockId']
                        );

    }

   echo json_encode($data);
table.php(其中显示我的html)


您需要创建一个json对象,并将数据添加到该json响应中的
data
数组中。@Darren您可以给我一个例子吗?您需要创建一个json对象,并将数据添加到该json响应中的
data
数组中。@Darren您可以给我一个例子吗?因此在这部分
“ajax”:“./ajax/data/objects.txt”
{“数据”:“名称”}
,那么我应该如何获取数据呢?
数据:数组(ItmId,ItmName,…),
应该替换
{“数据”:“名称”}
?不,你应该从你的
数据表
JS代码中删除它。很抱歉,我必须去掉所有这些内容。你能告诉我:(Darren,我已经解决了。谢谢你的指导!但是我必须修改while循环中的代码,这一部分也是
“ajax”:“/ajax/data/objects.txt”
{“data”:“name”}
,那么我应该如何获取数据呢?
数据:数组(ItmId,ItmName,…),
应该替换
{“data”:“name>“}
?不,你应该从你的
dataTables
一段JS代码中删除它。很抱歉,我必须去掉所有这些?你能告诉我:(达伦,我已经解决了。谢谢你的指导!但我必须在我的while循环中更改代码,仅此而已