2016-07-20 7 views
0

Ich versuche diesen Code, Datensätze aus der Datenbank zu holen, aber meine Weile Block Cloud reagiert nicht auf mich. Ich echo meine Abfrage wird es perfekt drucken, aber wenn die Abfrage kopieren, führen Sie meinen Server gibt es keine Werte zurück. Dieser cod zu erzeugen Fehler "Undefinierte Variable: JSON" wegen der Ignorieren während Block. Vielen Dank im AdvWarum kann mein While-Block nicht ausgeführt werden

<?php 
    require "db_config.php"; 

    $cus_name="R M PLASTICES"; 

    if(isset($cus_name) && $cus_name!=NULL && $cus_name!="") 
    { 
     $sql="select Vo.Cus_Name,Vo.vendorid,Vo.Created_date,vm.raw_mat as MATERIAL,vm.uom as UOM,vm.qty as ORDERQTY,vm.qtyin as RECDQTY,convert(decimal(7,3),sum(vm.qty-vm.qtyin)) as BALQTY from mmsuser.vendor_mat vm inner join mmsuser.vendor_order vo on vm.vendorid=vo.vendorid where Vo.Cus_Name='".$cus_name."'group by vm.Raw_mat,vm.qty,vm.uom,vm.qtyin,Vo.Cus_Name,Vo.vendorid,vm.id,Vo.Created_date having sum(vm.qty-vm.qtyin) > 0 order by vm.raw_mat"; 
    } 

    $stmt=sqlsrv_query($conn, $sql); 
    if($stmt===false) 
    { 
     die(print_r(sqlsrv_errors(),true)); 
    } 

    while($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) 
    { 
     $json['purchase_pending_repo'][]=$row; 
    } 
    sqlsrv_free_stmt($stmt); 

    echo json_encode($json); 

    sqlsrv_close($conn); 

?> 
+2

Sie haben Glück, dass Sie nur "Undefinierte Variable: Json" erhalten. Ich würde auch gelegentlich "Undefinierte Variable: sql" erwarten. Hinweis: Definieren Sie Ihre Variablen! Setzen Sie '$ json = ['purchase_pending_repo' => []]' irgendwo vor dem 'while'-Zyklus. Sind Sie sicher, dass Ihre Abfrage überhaupt Zeilen zurückgibt? – jirka

+0

Noch bekomme ich Antwortformular während Block @ jirka – AndroidBoy

+0

Sind Sie 100% sicher, dass Ihre Abfrage dann Zeilen zurückgibt? Der Code scheint in Ordnung zu sein. – jirka

Antwort

0

Sie versuchen, Daten in Arrays zweite Dimension anzuhängen, ohne auch nur erste Array initialisiert.

Zuerst müssen Sie $json Array Variable initialisieren und zweitens müssen Sie das zweite Array in $json['purchase_pending_repo'] initialisieren.

<?php 
    require "db_config.php"; 

    $cus_name="R M PLASTICES"; 

    if(isset($cus_name) && $cus_name!=NULL && $cus_name!="") 
    { 
     $sql="select Vo.Cus_Name,Vo.vendorid,Vo.Created_date,vm.raw_mat as MATERIAL,vm.uom as UOM,vm.qty as ORDERQTY,vm.qtyin as RECDQTY,convert(decimal(7,3),sum(vm.qty-vm.qtyin)) as BALQTY from mmsuser.vendor_mat vm inner join mmsuser.vendor_order vo on vm.vendorid=vo.vendorid where Vo.Cus_Name='".$cus_name."'group by vm.Raw_mat,vm.qty,vm.uom,vm.qtyin,Vo.Cus_Name,Vo.vendorid,vm.id,Vo.Created_date having sum(vm.qty-vm.qtyin) > 0 order by vm.raw_mat"; 
    } 

    $stmt=sqlsrv_query($conn, $sql); 
    if($stmt===false) 
    { 
     die(print_r(sqlsrv_errors(),true)); 
    } 
    $json = array('purchase_pending_repo' => array()); //OR $json = ['purchase_pending_repo'=>[]] 
    while($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) 
    { 
     $json['purchase_pending_repo'][]=$row; 
    } 
    sqlsrv_free_stmt($stmt); 

    echo json_encode($json); 

    sqlsrv_close($conn); 

?> 
+0

Kein Antwortformular, während jetzt nur die {"purchase_pending_repo": []} @Gvidas gedruckt wird – AndroidBoy

Verwandte Themen