2016-03-24 10 views
0

私はAngularJSを使用してMySQLデータベースの要素をリストしようとしています。 いくつかの研究にもかかわらず、私はそれを行うためにコントローラの機能に書き込むものを見つけることができません。AngularJSでSQLデータベースを検索

より正確には、私は以前、以下のものを使用してAngularJSせずにそれをやった:

<div ng-app="searchApp" ng-controller="searchController"> 
    <table> 
     <tr ng-repeat="x in objects"> 
      <td>{{ x.name }}</td> 
     </tr> 
    </table> 
</div> 

<script> 
    var app = angular.module('searchApp', []); 
    app.controller('searchController', function($scope) 
    { 
     //What should i do here ? 
    }); 
</script> 
+0

AngularJSはシングルページアプリケーションフレームワークです:https://en.wikipedia.org/wiki/Single-page_application ... ajaxでデータを読むのが一般的です。コントローラでは$ http https://docs.angularjs.org/api/ng/service/$http –

+0

しかし、$ httpを使用してSQLデータベースで検索を実行するにはどうすればよいですか?あなたは例を挙げることができますか? –

+0

サーバーとクライアントでアーキテクチャを分割すると、サーバー(php)がデータベースクエリを実行し、クライアント(angularJS)からのA​​JAX要求への応答としてjsonを生成します –

答えて

2

私はこれが動作するかわからない:

$link = new PDO('mysql:host=localhost;dbname=mygaloo;charset=utf8', 'root', ''); 
$query = $link->query("SELECT * FROM ".$choice." WHERE nom LIKE '%".$request."%' ORDER BY id DESC"); 

ここに私の現在のコードです。それはしないでください。

クライアント側とサーバー側のプログラミングには明確な違いがあります。
AngularとjQueryはクライアント側で実行されるか、クライアントコンピュータ上で実行されます。これは、次のようなときに意味します。

$link = new PDO('mysql:host=localhost;dbname=mygaloo;charset=utf8', 'root', ''); 

データベースを参照するために必要なすべてのデータがユーザーに与えられます。地獄、あなたは根を提供した。つまり、誰でもデータベースにrootとしてログオンし、データベース内のすべてを変更したり、単にすべてのユーザーデータを収集したりすることができます。

これを保護するには、サーバー側のスクリプトとAPIを使用してアプリケーションにデータを公開する必要があります。

サーバー側のコードがクライアントに公開されることはないため、パスワードを保存してデータベースに接続するのに適しています。クライアント側のスクリプティングには多くの可能性があります。

  • PHP
  • nodeJS(サーバ上のジャバスクリプト)
  • ルビー
  • ...

1つだけ選択し、それらを使用する方法にまで読み始めます。