2016-05-25 11 views
0

私はのストアドプロシージャの結果をphpの配列に取得しようとしています。私が持っているコード:は、spから配列に結果を得ることができません

function get_all_uzovi($dbc) { 

    //$query = "SELECT diagnose_id, diagnose_code, specialisme_agb_code_fk 
    //  FROM tbl_diagnoses 
    //  WHERE specialisme_agb_code_fk = '$var_chosen_specialism' 
    //  ORDER BY diagnose_code ASC"; 
    $result = mysqli_query($dbc,"CALL spGetUzovi"); 

    //WHAT DOES NOT WORK: 
    //$data = array(); 
    //while ($row = $result->fetch_assoc()) { 
    // $data[] = $row; 
    //} 
    //return json_encode($data); 

    //WHAT DOES WORK: 
     while ($row = mysqli_fetch_array($result)){ 
      echo $row[0] . " - " . + $row[1]; 

     } 


} 

コード「// WHAT動かない」の下には何が必要です:jsonフォーマットとして結果。何らかの理由でそれは私に何も与えません。

"//何がうまくいくのですか"というコードはうまくいきますが、これは私が望むものではありません。

SPのコード:

CREATE DEFINER=`ziekenh3`@`localhost` PROCEDURE `spGetUzovi`() 
    NO SQL 
SELECT * 
FROM tbl_uzovi 

代わりにSPの(仕事をする)クエリで作業するとき私が使用するコード:

function get_diagnoses($dbc,$var_chosen_specialism) { 

    $query = "SELECT diagnose_id, diagnose_code, specialisme_agb_code_fk 
      FROM tbl_diagnoses 
      WHERE specialisme_agb_code_fk = '$var_chosen_specialism' 
      ORDER BY diagnose_code ASC"; 
    $result = mysqli_query($dbc,$query); 

    $data = array(); 
    //while ($row = $result->fetch_assoc()) { 
    while ($row = mysqli_fetch_assoc($result)) { 
     $data[] = $row; 
    } 

    return json_encode($data); 
} 

任意の考え?

+1

保存されproceedureを見ることが有用であろう – RiggsFolly

+3

なぜあなたはmysqliのの手続きやオブジェクトの呼び出しを混在んスティック!?一方の方法でそれが動作します。 – DanFromGermany

+0

私はそのストアドプロシージャの感じを持っています。私が私はPHPで書くクエリで動作しないコードを使用し、それが動作します。私はspを 'phpMyAdmin'で作った。 spはnog INまたはOUTパラメータを持ち、SQL文は 'SELECT * FROM tbl_uzovi'です。 – CostCare

答えて

0

これは機能しますか?

function get_all_uzovi($dbc) { 
 

 
    $result = mysqli_query($dbc,"CALL spGetUzovi"); 
 

 
    $data = array(); 
 
    while ($row = $result->fetch_assoc()) { 
 
     $data[] = $row; 
 
    } 
 
    return json_encode($data); 
 

 
}

+0

いいえ、定義されていないオフセットは0と1です。そしてspの結果の列名を取得しません。 – CostCare

+0

あなたはどんな種類のJSON応答を期待していますか? – Gadget

+0

私はquerstionでspの代わりにqueryを使って作業するときに使用したコードを投稿しました。これはうまくいきますが、spのクエリを置き換えるともう動作しません。 – CostCare

0

私はそれを解決しました。愚かな問題のビット:そこのような文字が含まれている結果セットの一部のフィールド:。、(などは、私はjsonがこれを好きとは思わない...

私はそれが働いていた別のテーブルの上にSELECT * FROMをしました。だから、今働く私のコードは次のとおりです。

function get_all_uzovi($dbc) { 

    $q = "CALL spGetUzovi"; 
    $r = mysqli_query($dbc,$q); 

    while ($row = mysqli_fetch_assoc($r)) { 
     $data[] = $row; 
    } 

    return json_encode($data); 

} 

I不便をおかけして申し訳ありません

関連する問題