0

mysql データベース内のテーブルをカウントする必要があり、そのためには php を使用する必要があります。次のコードを使用しますcounttable.php

$query = "SELECT COUNT(*) FROM table";
$result = mysqli_query($connection, $query);

$count = (string)$result;
echo $count;

mysqli_close();

私の計画は、次の Angular コードを使用して結果を取得することです。

myApp.factory("count", function($http) {
    return $http.get('counttable.php');
});

私のコントローラでは、ファクトリの関数successと関数を使用して結果を制御します。error

count.success(function(data) {
    $scope.data = data;
});

count.error(function(data) {
    console.log("Count failed.");
});

Web ページを実行すると、「カウントに失敗しました」と表示されます。コンソールで。$countを使用して php変数を JSON としてカプセル化しようとしjson_encodeましたが、空のオブジェクトしか得られませんでした。これには簡単な答えがあるかもしれないと推測していますが、私にはそれがわかりません。

助けてください、どんな答えでも大歓迎です!ありがとう。

4

3 に答える 3

0

返信ありがとうございます。しかし、私は問題を理解できませんでした。私はこの質問に出くわし、これが私の問題の解決策だと思いました。ただし、これも機能しませんでした。 から成功を収めることができました$http.getが、factoryはデータを生成しませんでした。

問題が何であるかについては本当にわかりませんが、私が望むものを得るために「回避策」を実行することができました。COUNT(*)クエリを実行する代わりに、 を使用しSELECT name FROM tableました。次に、 を適用json_decodeし、配列を に渡しました$http.get。これは喜んで受け入れます。次に、次のように配列の長さを見つけました。

$scope.count = 0;
count.success(function(data) {
    $scope.count = data.length;
});

そして今、それは動作します..

再度、感謝します!

于 2014-01-19T20:51:43.350 に答える
0

たとえば、ローカルホストでAngularアプリケーションを実行していると仮定します

http://localhost/myapp/

次に $http.get('counttable.php') を実行すると、

http://localhost/myapp/counttable.php

上記の URL をブラウザに入力して、表示されるエラー メッセージを評価してみてください。ウェブサーバーのログも調べてください。

ブラウザとサーバー間のリクエスト/レスポンス通信に関する詳細情報を取得するには、chrome に含まれているようなネットワーク アナライザーを使用できます ( http://net.tutsplus.com/tutorials/chrome-dev-tools-networking- and-the-console/ )、これを使用して、Angular アプリケーションがどのように動作するかを確認することもできます。

コンソール出力を充実させることも役立ちます

console.log('Count failed', data);
于 2014-01-18T09:39:23.457 に答える
0

コードは問題ないようです。試す:

console.log(data)

エラー関数で、php が何をエコーするかを確認できます。


別のアプローチは、次を使用することです。

count.then(function(response) {
    console.log(response);
};

使用すると、データ、ステータス、ヘッダー、および構成を含む http Web 応答全体を取得できます。これにより、デバッグをより適切に行うことができます。

または、次を使用できます。

success(function(data, status, headers, config)
于 2014-01-18T09:47:34.643 に答える