0

5 つの列と複数の行を持つデータベースがあります。PHP を使用してデータを取得し、配列として JSON としてエコーします。それがエコーする方法は、各行のデータが配列であり、行自体が配列(配列内の配列)であることです。

ここで、Ajax を使用してデータを取り込み、配列内で配列を分割したいと考えています。これまでのところ、行を分割することしかできません。どうすればさらに分割できますか?

PHPは次のとおりです。

  //==== FETCH DATA
  $result = mysql_query("SELECT * FROM $tableName");

  //==== PUT DATA INTO ARRAY
  $array = array();
  while ($row = mysql_fetch_row($result)) {
    $array[] = $row;
  }

  //==== ECHO AS JSON
  echo json_encode($array);

アヤックスは次のとおりです。

$.ajax({                                      
  url: 'assets/php/results.php',    
  data: "",
  dataType: 'json',                  
  success: function(data){

    //==== FETCH DATA FIELDS
    var row1 = data[0];
    var row2 = data[1];

    //==== UPDATE HTML WITH DATA
    $('#r-col span.row1').html(row1);
    $('#r-col span.row2').html(row2);
  }
});
4

1 に答える 1

3

あなたの質問に答えるために、より短いステップでこれを達成するためのヒントをいくつか紹介しましょう。
まず、msql_ (php 内) の代わりに msqli_ 関数を使用してみてください。これにより、他の改善点の中でもセキュリティの処理が改善され、w3schools が使用を推奨する関数でもあります。

mysqli_fetch_array() と呼ばれる関数があり、単一のコマンドで for ループで行っていることを正確に実行します。

json に関する質問に答えるには、json が実際にどのようなものかを確認する必要があります。

var data = {"menu": {
  "id": "file",
  "value": "File123",
  "popup": {
    "menuitem": [
      {"value": "New", "onclick": "CreateNewDoc()"},
      {"value": "Open", "onclick": "OpenDoc()"},
      {"value": "Close", "onclick": "CloseDoc()"}
    ]
  }
}}

Json オブジェクトは配列ではなく、オブジェクトです。つまり、次のような情報にアクセスできます。

data.menu.id //Which is equal to "file"<br>

また

data[0][0]  //which is also equal to "file"<br>

または組み合わせ

data[0].value  //is equal to "File123"

このオブジェクトがどのように機能するかを理解するには、Chrome のインタラクティブ コンソールを使用すると効果的です。オブジェクトの印刷を理解するのはかなり簡単です。また、javascript でのオブジェクト指向プログラミングについても読むことをお勧めします。

簡単に言うと、Json オブジェクトは配列ではありませんが、追加することで簡単に並べ替えることができます。また []

ちょっとした注意: ステートメントで Select * を使用しないようにしてください。多くのリソースが必要です。必要なフィールドを名前で呼び出すだけです。
また、msql_ 関数は現在少し非推奨です。代わりに msqli_ 関数を使用してみてください。セキュリティ面でいくつかのアップグレードがあります。例については w3schools.com を確認してください。
最後に、msqli_fetch_array と呼ばれる関数が php にあり、これはまさに for ループでやろうとしていることを実行します。これは、クエリ出力を配列に変換します。



ハッピーコーディング。

于 2013-03-19T23:16:12.263 に答える