2017-11-08 18 views
1

HELP!お願いします。 SQL、PHP、およびJSONを使用してデータベースを作成するのは初めてです。AngularJS、MySQL、PHP、JSON - データベースからデータが表示されない

私のデータは、XAMPPを使用してデータベース(ローカルホスト)から表示されません。 MySQLからデータをフェッチするためのPhp行を作成してから、AngularJSが処理できるようにJSONファイルを作成します。しかし、私のデータは全く表示されません。

Devツール(Chrome)にはエラーは表示されません。コードまたは作成したデータベースに問題はありますか?ここで

SELECT* PIC

MYSQL pic

Columns pic

は、これは私のapp.jsである私のapi.php

<?php 

     $db_name = 'talents'; 
     $hostname = 'localhost'; 
     $username = 'root'; 
     $password = ''; 

     $dbh = new PDO("mysql:host=$hostname;dbname=$db_name", $username, $password); 

     $sql = 'SELECT id, name, images, images2, images3, indexing FROM talents'; 

     $stmt = $dbh->prepare($sql); 

     $stmt->execute(); 

     $result = $stmt->fetchAll(PDO::FETCH_ASSOC); 

     $json = json_encode($result); 

     echo $json; 
?> 

ある

(function() { 

    var alice = angular 
     .module('alice', []) 
     .controller('AliceController', function ($scope, $http) { 
      $http.get('api.php'). 
      then(function (talents) { 
       $scope.talents = talents; 
      }); 

     }); 


})(); 

最終は私のHTML

<div ng-controller="AliceController" class="talent-container"> 
    <div ng-repeat="talent in talents" class="card boxed" ng-class=" {{talent.indexing}}"> 
     <div class="actionlist"> 
      <div id="id"><span>{{talent.id}}</span></div> 
      <div class="addBtn"> 
       <a href="#"><img src="assets/icons/plus.svg"></a> 
      </div> 
      <div class="loveBtn"> 
       <a href="#"><img src="assets/icons/heart-in-a-circle.svg"></a> 
      </div> 
     </div> 
     <div class="media"> 
      <div><img id="slideShow" ng-src="{{talent.images}}"></div> 
      <div class="hide"><img id="slideShow" ng-src="{{talent.images2}}"></div> 
      <div class="hide"><img id="slideShow" ng-src="{{talent.images3}}"></div> 

     </div> 
     <div class="info"> 
      <div id="name">{{talent.name}}</div> 
      <div class="button medium"> 
       <a href="detail.html" class="moreBtn">MORE</a> 
      </div> 
     </div> 

     <div class="skills-thumb"> 
      <a ng-repeat="skill in talent.skills" href="#" class="boxedMedium">{{skill.name}}</a> 
     </div> 
    </div> 


</div> 
+0

を提供することができサーバーまたはクライアントのどこに問題があるのか​​を判断してください。 –

+0

あなたのjsにはあなたが持っているものがあります... $ scope.talents = talents; ...あなたの才能変数はあなたのHTMLにおいて単数ですが、それは正常ですか?あなたのHTMLコードの回りにngForループをしますか? – mickaelw

+0

あなたのhttpコールがエラーコールバックを許可する範囲: '$ http.get( 'api.php')then((res)=> {$ scope.talents = res.data;}、(err)=> {console。 –

答えて

1

は間違いなくあなたのHTTPサービスのエラーハンドラを実装しています。

まず、apiを直接呼び出して応答があるかどうかを確認するには、postmanを使用します。もしそうでなければ、あなたの問題はPHP側にある可能性があります。

あなたが応答を得て、あなた自身が角度をつけてページを読み込んだときにファイヤーバグで呼び出しが行われていなければ、それはjs /クライアント側にある可能性があります。それはエラーコードをサーバーから戻ってきた場合を除き

Chromeはエラーあなたに何かを教えてくれません、あなただけのあなたはそれが助けサーバからの応答を見ることができクロームdevのツールで空の200

+0

このリクエストを取得api.php = 受け入れる:アプリケーション/ JSON、text/plainで、*/* 受け入れエンコード:gzipで、収縮させる、BR のAccept-言語:EN-USアン; Q = 0.9 のCache-Control:キャッシュなし 接続:キープアライブ をホスト:localhost プラグマ:no-cache Referer:http:// localhost/alice/ User-Agent:Mozilla/5.0(Windows NT 10.0; Win64; x64)AppleWebKit/537.36(GeckoのようなGecko)Chrome/62.0.3202.75 Safari/537.36 –

+0

POSTman/CURLを使用するときに本体に何も表示されない場合、問題はPHP /サーバー側にあります。 おそらく愚かな質問かもしれませんが、あなたのデータベースには実際にデータがありますか? PHPを学んでいるなら、try/catchと例外処理をチェックするのがいいでしょう。 コードに大きな問題はありません。そうしてください。 1. PHPエラー報告をALL(devのみ)に設定し、try/catchを使用してください。 2. mysqlのクエリを試してください。 3. Postmanまたはcurlを使用してapiを押します。 4. apiが動作することを知る前にクライアント側にも集中しないでください。 – rmowatt

関連する問題