2017-03-01 86 views
0

我有一个查询获取我的SQL数据库中的所有值,但是当我运行它PHP时,查询返回“NULL”,并不显示任何内容。有人可以帮忙吗?我附上了我的查询和代码。MSSQL查询返回NULL与PHP代码

SQL:

<?php 
       $newResult = <<<SQL 
        SELECT 
a.transactionTime, 
a.currentLocation AS LOCATION, 
a.consignmentNumber, 
A.TrackingStatus, 
A.MapStatus 

FROM (
    SELECT ctv.consignmentNumber, 
       ctv.currentLocation, 
       ctv.stateID, 
       mcts.TrackingStatus, 
       ctv.transactionTime, 
       mcts.sortorder, 
       CASE 
        WHEN mcts.TrackingStatus = 'NEW' THEN 
         'Shipment Booked/Picked from Customer(s) Dated: ' + 
         CONVERT(VARCHAR(21), ctv.transactionTime, 105) 
        WHEN mcts.TrackingStatus = 'ARRIVAL' THEN 
         'Reached at Origin HUB for Processing ' + CONVERT(VARCHAR(21), ctv.transactionTime, 105) 
        WHEN mcts.TrackingStatus IN ('MANIFESTED', 'BAGGED', 'LOADED') THEN 
         'Processed at Origin HUB for onward Forwarding to Destination ' 
         + 
         CONVERT(VARCHAR(21), ctv.transactionTime, 105) 
        WHEN mcts.TrackingStatus IN ('UNLOAD', 'DEBAG', 'DEMANIFEST') THEN 
         'Reached at Destination HUB for onward Delivery ' + 
         CONVERT(VARCHAR(21), ctv.transactionTime, 105) 
        WHEN mcts.TrackingStatus = 'RUNSHEET' THEN 
         'Service Delivery Officer is departed from Operations for attempting at address ' 
         + 
         CONVERT(VARCHAR(21), ctv.transactionTime, 105) 
        WHEN mcts.TrackingStatus = 'POD' THEN (
          SELECT CASE 
             WHEN rc.Reason = '123' THEN (
               (
                SELECT l.AttributeValue 
                FROM rvdbo.Lookup l 
                WHERE l.Id = rc.Reason 
               ) 
               + ' and ' + 
               'Received by :' + rc.receivedBy 
               + ' on ' + CONVERT(VARCHAR(21), rc.[time], 105) 
              ) 
             ELSE (
               SELECT l.AttributeValue + 
                 '' + rc.Reason + rc.receivedBy 
               FROM rvdbo.Lookup l 
               WHERE l.Id = (CASE WHEN rc.Reason IS NULL THEN '' ELSE rc.Reason END) 
              ) 
            END 
          FROM runsheetconsignment rc, 
            runsheet r1 
          WHERE ctv.consignmentnumber = rc.consignmentnumber 
            AND ctv.runsheetnumber = rc.runsheetnumber 
            AND r1.runsheetnumber = rc.runsheetnumber 
            AND r1.branchcode = rc.branchcode 
            AND r1.routecode = rc.routecode 
            AND r1.createdBy = rc.createdBy 
         ) 
       END MapStatus, 
       CASE 
        WHEN ctv.StateID = '1' THEN ISNULL(
          (
           SELECT + 
             'Consignment No: ' 
             + c.consignmentNumber 
             + 
             ' was booked on :' 
             + 
             CONVERT(VARCHAR(11), c.createdOn, 106) 
             + 
             ' by User :' + 
             zu.Name + 
             ' on Location :' 
             + ec.name 
           FROM Consignment c, 
             ZNI_USER1 zu, 
             Branches b, 
             ExpressCenters 
             ec 
           WHERE CONVERT(NVARCHAR, c.createdby) = 
             CONVERT(NVARCHAR, zu.U_ID) 
             AND zu.branchcode = b.branchCode 
             AND zu.ExpressCenter = ec.expressCentercode 
             AND RTRIM(LTRIM(c.consignmentNumber)) = 
              RTRIM(LTRIM(ctv.consignmentNumber)) 
            AND consigneraccountno not in ('4B45','7240','4H86','4H87','4H88','4B87','7240','4B45','4H91','4H89','4H90','4F47') 
          ), 
          'New' 
         ) 
        WHEN ctv.StateID = '2' THEN (
          SELECT +'Manifest No :' + 
            c.manifestNumber 
            + 
            ' was Generated on :' 
            + 
            CONVERT(VARCHAR(11), c.createdOn, 106) 
            + 
            ' by User :' + zu.Name 
            + 
            ' on Location :' 
            + ec.name 
          FROM mnp_Manifest c, 
            ZNI_USER1 zu, 
            Branches b, 
            ExpressCenters ec 
          WHERE CONVERT(NVARCHAR, c.createdBy) = CONVERT(NVARCHAR, zu.U_ID) 
            AND zu.branchcode = b.branchCode 
            AND zu.ExpressCenter = ec.expressCentercode 
            AND c.manifestNumber = ctv.manifestNumber 
         ) 
        WHEN ctv.StateID = '3' THEN (
          SELECT +'Bag No: ' + c.bagNumber 
            + 
            ' and Seal No: ' + 
            c.sealNo + 
            ' was Generated on :' 
            + 
            CONVERT(VARCHAR(11), c.createdOn, 106) 
            + 
            ' by User :' + zu.Name 
            + 
            ' on Location :' 
            + ec.name 
          FROM Bag c, 
            ZNI_USER1 zu, 
            Branches b, 
            ExpressCenters ec 
          WHERE CONVERT(NVARCHAR, c.createdBy) = CONVERT(NVARCHAR, zu.U_ID) 
            AND zu.branchcode = b.branchCode 
            AND zu.ExpressCenter = ec.expressCentercode 
            AND c.bagNumber = ctv.bagNumber 
         ) 
        WHEN ctv.StateID = '4' THEN (
          SELECT +'Loading No :' + 
            CONVERT(VARCHAR, c.id) 
            + ' and Seal No: ' 
            + c.sealNo 
            + 
            + 
            ' was Generated on :' 
            + 
            CONVERT(VARCHAR(11), c.createdOn, 106) 
            + 
            ' by User :' + zu.Name 
            + 
            ' on Location :' 
            + ec.name 
          FROM MnP_Loading c, 
            ZNI_USER1 zu, 
            Branches b, 
            ExpressCenters ec 
          WHERE CONVERT(NVARCHAR, c.createdBy) = CONVERT(NVARCHAR, zu.U_ID) 
            AND zu.branchcode = b.branchCode 
            AND zu.ExpressCenter = ec.expressCentercode 
            AND CONVERT(NVARCHAR, c.id) = CONVERT(NVARCHAR, ctv.loadingNumber) 
         ) 
        WHEN ctv.StateID = '18' THEN (
          SELECT + 'Arrival No :' + 
            CONVERT(NVARCHAR, c.Id) 
            + 
            ' was Generated on :' 
            + 
            CONVERT(VARCHAR(11), c.createdOn, 106) 
            + 
            ' by User :' + zu.Name 
            + 
            ' on Location :' 
            + ec.name 
          FROM ArrivalScan c, 
            ArrivalScan_Detail 
            asd, 
            ZNI_USER1 zu, 
            Branches b, 
            ExpressCenters ec 
          WHERE c.Id = asd.ArrivalID 
            AND CONVERT(NVARCHAR, c.createdBy) = 
             CONVERT(NVARCHAR, zu.U_ID) 
            AND zu.branchcode = b.branchCode 
            AND zu.ExpressCenter = ec.expressCentercode 
            AND asd.consignmentNumber = ctv.consignmentNumber 
            AND c.Id = ctv.ArrivalID 
         ) 
        WHEN ctv.StateID = '6' THEN (
          SELECT + 
            'DeBagging was Generated on :' 
            + 
            CONVERT(VARCHAR(11), c.createdOn, 106) 
            + 
            ' by User :' + zu.Name 
            + 
            ' on Location :' 
            + ec.name 
          FROM Bag c, 
            ZNI_USER1 zu, 
            Branches b, 
            ExpressCenters ec 
          WHERE CONVERT(NVARCHAR, c.createdBy) = CONVERT(NVARCHAR, zu.U_ID) 
            AND zu.branchcode = b.branchCode 
            AND zu.ExpressCenter = ec.expressCentercode 
            AND c.bagNumber = ctv.bagNumber 
         ) 
        WHEN ctv.StateID = '7' THEN (
          SELECT + 
            'DeManifest was Generated on :' 
            + 
            CONVERT(VARCHAR(11), c.DemanifestDate, 106) 
            + 
            ' by User :' + zu.Name 
            + 
            ' on Location :' 
            + ec.name 
          FROM mnp_Manifest c, 
            ZNI_USER1 zu, 
            Branches b, 
            ExpressCenters ec 
          WHERE CONVERT(NVARCHAR, c.DemanifestBy) = 
            CONVERT(NVARCHAR, zu.U_ID) 
            AND zu.branchcode = b.branchCode 
            AND zu.ExpressCenter = ec.expressCentercode 
            AND c.manifestNumber = ctv.manifestNumber 
         ) 
        WHEN ctv.StateID = '8' THEN (
          SELECT +'Runsheet No :' + 
            c.runsheetNumber 
            + 
            ' was Generated on :' 
            + 
            CONVERT(VARCHAR(11), c.createdOn, 106) 
            + 
            ' by User :' + zu.Name 
            + 
            ' on Location :' 
            + ec.name 
            + 
            ' against Rider :' 
            + c.routeCode 
            + ' -' 
            + ctv.riderName 
          FROM Runsheet c, 
            RunsheetConsignment 
            rc, 
            ZNI_USER1 zu, 
            Branches b, 
            ExpressCenters ec 
          WHERE CONVERT(NVARCHAR, c.createdBy) = CONVERT(NVARCHAR, zu.U_ID) 
            AND zu.branchcode = b.branchCode 
            AND zu.ExpressCenter = ec.expressCentercode 
            AND c.runsheetNumber = rc.runsheetNumber 
            AND c.routeCode = rc.RouteCode 
            AND c.branchCode = rc.branchcode 
            AND c.runsheetNumber = ctv.runsheetNumber 
            AND ctv.consignmentNumber = rc.consignmentNumber 
         ) 
        WHEN ctv.stateID = '10' 
     AND LEN(ctv.riderName) <> 0 THEN (
       SELECT (CASE WHEN rc.Reason IS NULL THEN '' ELSE rc.Reason END) 
       FROM runsheetconsignment rc, 
         runsheet r1 
       WHERE ctv.consignmentnumber = rc.consignmentnumber 
         AND ctv.runsheetnumber = rc.runsheetnumber 
         AND r1.runsheetnumber = rc.runsheetnumber 
         AND r1.branchcode = rc.branchcode 
         AND r1.routecode = rc.routecode 
         AND r1.createdBy = rc.createdBy 
      ) 
      WHEN ctv.stateID = '10' 
     AND LEN(ctv.riderName) = 0 
     AND ctv.reason = 
      'UNDELIVERED' THEN (
       SELECT (CASE WHEN rc.Reason IS NULL THEN '' ELSE rc.Reason END) 
       FROM runsheetconsignment rc, 
         runsheet r1 
       WHERE ctv.consignmentnumber = rc.consignmentnumber 
         AND ctv.runsheetnumber = rc.runsheetnumber 
         AND r1.runsheetnumber = rc.runsheetnumber 
         AND r1.branchcode = rc.branchcode 
         AND r1.routecode = rc.routecode 
         AND r1.createdBy = rc.createdBy 
      ) 
      WHEN ctv.stateID = '10' 
     AND ctv.reason = 'DELIVERED' 
     AND LEN(ctv.riderName) 
      = 0 THEN (
       SELECT (CASE WHEN rc.Reason IS NULL THEN '' ELSE rc.Reason END) 
       FROM runsheetconsignment rc, 
         runsheet r1 
       WHERE ctv.consignmentnumber = rc.consignmentnumber 
         AND ctv.runsheetnumber = rc.runsheetnumber 
         AND r1.runsheetnumber = rc.runsheetnumber 
         AND r1.branchcode = rc.branchcode 
         AND r1.routecode = rc.routecode 
         AND r1.createdBy = rc.createdBy 
      ) 

      WHEN ctv.StateID = '20' THEN (
       SELECT +'Material Arrival No :' + 
         CONVERT(NVARCHAR, c.ArrivalID) 
         + 
         ' was Generated on :' + CONVERT(VARCHAR(11), c.createdOn, 106) 
         + 
         ' by User :' + zu.Name + 
         ' on Location :' 
         + ec.name 
       FROM MNP_MaterialArrival c, 
         MNP_MaterialArrivalDetail asd, 
         ZNI_USER1   zu, 
         Branches   b, 
         ExpressCenters  ec 
       WHERE c.ArrivalID = asd.ArrivalID 
         AND CONVERT(NVARCHAR, c.createdBy) = CONVERT(NVARCHAR, zu.U_ID) 
         AND zu.branchcode = b.branchCode 
         AND zu.ExpressCenter = ec.expressCentercode 
         AND asd.ConsignmentNumber = ctv.consignmentNumber 
      ) 
      ELSE '' 
      END Detail 
      FROM Consignment_Tracking_View ctv 
      INNER JOIN (
       SELECT ctv2.stateID, 
         MAX(ctv2.transactionTime) TIME 
       FROM Consignment_Tracking_View ctv2 
       WHERE ctv2.consignmentNumber = '$cn' 
       GROUP BY 
         ctv2.stateID 
      ) a 
      ON ctv.stateID = a.stateID 
     AND ctv.transactionTime = a.[time] 
      LEFT OUTER JOIN MNP_ConsginmentTrackingStatus mcts 
      ON ctv.stateID = mcts.StatusID 
      WHERE ctv.consignmentNumber = '$cn' 
     AND mcts.[Active] = '1' 
    ) A 

    GROUP BY 
      a.consignmentNumber, 
      A.sortorder, 
      A.MapStatus, 
      a.currentLocation, 
      a.transactionTime, 
      a.TrackingStatus 
    ORDER BY 
      a.transactionTime desc 
      -- CAST(a.sortorder AS INT) 

PHP;

 $results=mssql_query($newResult); 
     $values = mssql_fetch_array($results); 
     var_dump($values); 
     //$rs_one = mssql_query($newResult); 
     $num_rows_one = mssql_num_rows($results); 

     if ($num_rows_one > 0){ 
      ?> 
       <table class="col-md-12 table-bordered table-striped table-condensed cf track-history"> 
        <thead class="cf"> 
         <tr> 
          <td style="background: #f26522;color: #FFF;">DateTime </td> 
          <td style="background: #f26522;color: #FFF;">Status</td> 
          <td style="background: #f26522;color: #FFF;">Location </td> 
         </tr> 
        </thead> 

        <tbody> 
        <?php while($row_one = mssql_fetch_array($rs_one)){ ?> 
         <tr> 
          <td> <?php echo $row_one["transactionTime"]; ?></td> 
          <td> <?php echo $row_one["MapStatus"]; ?></td> 
          <td> <?php echo $row_one["LOCATION"];?></td> 
         </tr> 
         <?php } ?> 
+0

$ cn是Post变量..其代销号码像123456 ...... –

+0

任何一个请帮忙 –

+0

只是想确认,如果您通过SQL管理工作室运行它,您的查询是否返回任何请求?如果是的话,你可以看到表(只是试图找出它是否看到数据) –

回答

0

你有这样的一部分:

while($row_one = mssql_fetch_array($rs_one)){ 

而行,你必须$rs_one被注释掉了,所以没有设置。看看这一行:

$values = mssql_fetch_array($results); 

您需要使用$values而不是$rs_once

while($row_one = mssql_fetch_array($values)){ 

这不一定是一个完整的解决您的问题,但可以肯定的是解决一个问题。如果你给我更多关于你的问题的细节,那么这个答案也会被编辑。

+0

我检查并更正了它,但没有显示任何内容。请告诉你需要什么细节。感谢您的合作 –

+0

此查询在SQL服务器软件中工作正常。这里是SQL服务器的图像https://www.screencast.com/t/BteUDe28 –

+0

@ user1014338我在这里提供帮助。你怎么知道查询没有结果?你的情况是什么,你是怎么发现的?它是var_dump的结果吗? –