1

データベースから JSON を使用してデータを取得し、それらをテーブルで解析しようとしています。

現在、次のように取得します。

xmlhttp = new XMLHttpRequest()

xmlhttp.onreadystatechange = function () {
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
        var jsontext = xmlhttp.responseText;
        var json = JSON.parse(jsontext);

        console.log(json.service)

    }
}

xmlhttp.open("GET", "mysql.php?p=getservice" + "&carid=" + "KYF111", true);
xmlhttp.send();

これにより、id 'term' を持つ行がいくつあっても、1 つの結果が得られます。

私の mysql.php ファイルは次のようになります。

case 'getservice':

$q = mysql_real_escape_string($_GET['q']);
$carid = stripslashes($_GET['carid']);
$query = "SELECT * FROM Service WHERE carid = '".$carid."'";

$result = mysql_query($query);

$json = array();
while ($row = mysql_fetch_array($result)) {

    $json['carid'] = $row['carid'];
    $json['service'] = $row['service'];
    $json['date'] = $row['date'];
    $json['nextdate'] = $row['nextdate'];
    $json['kilometers'] = $row['kilometers'];
    $json['servicedby'] = $row['servicedby'];
    $json['invoice'] = $row['invoice'];
    $json['cost'] = $row['cost'];
    $json['remarks'] = $row['remarks'];

}
print json_encode($json);

mysql_close();

break;

これは私のデータベースがどのように見えるかです:

ここに画像の説明を入力

したがって、用語は cardidになり、 carid という用語を含む行からすべての値が必要です。次に、単一行の各値が a の間に取得されます。このようなもの:

<tbody>
    <tr>
        <td>Tyre</td>
        <td>10-10-2012</td>
        <td>31-10-2012</td>
        <td></td>
        <td>George</td>
        <td>8951235</td>
        <td>0</td>
        <td>Lorem Ipsum</td>
    </tr>
    <tr>
        <td>Lights</td>
        <td>17-10-2012</td>
        <td>23-10-2012</td>
        <td></td>
        <td>Antony</td>
        <td>4367234</td>
        <td>0</td>
        <td>Lorem Ipsum</td>
    </tr>
</tbody>
4

2 に答える 2

1

ループwhileは、2 次元配列を作成するのではなく、毎回同じ配列エントリを上書きしています。そのはず:

$json = array();
while ($row = mysql_fetch_array($result)) {
  $json[] = $row;
}
echo json_encode($json);

JavaScript では、返された配列をループする必要があります。代わりに次のconsole.log(json.service)ようにする必要があります。

for (var i = 0; i < json.length; i++) {
    console.log(json[i].service);
}
于 2012-10-20T05:13:06.183 に答える
1

このようにしてみてください:

    $temp=0;
    $json = array();
        while ($row = mysql_fetch_array($result)) {

            $json[$temp]['carid'] = $row['carid'];
            $json[$temp]['service'] = $row['service'];
            $json[$temp]['date'] = $row['date'];
            $json[$temp]['nextdate'] = $row['nextdate'];
            $json[$temp]['kilometers'] = $row['kilometers'];
            $json[$temp]['servicedby'] = $row['servicedby'];
            $json[$temp]['invoice'] = $row['invoice'];
            $json[$temp]['cost'] = $row['cost'];
            $json[$temp]['remarks'] = $row['remarks'];
    $temp++;
        }
print json_encode($json);
于 2012-10-20T05:14:22.530 に答える