2017-01-19 13 views
0

私は自分のデータベースレコードにフィルタリングシステムを作りたいと思っています。 私はレコードを読み込むことができますが、私はJQuery Mobileのドロップダウンバーを使って複数のキーワードでレコードをフィルタリングしようとしています。しかし、私はこれをすべてひとつにまとめる方法を知らない。ここでJQuery Mobile Mysqlデータベースフィルタシステム

は、jQueryのモバイル・ドロップダウン・オプションのためのコードである:ここで

 <label for="select-h-6a">Genre</label> 
     <select name="select-h-6a" id="select-h-6a"> 
      <option value="#">Rock</option> 
      <option value="#">Pop</option> 
      <option value="#">Dance</option> 
     </select> 
     <label for="select-h-6b">Role</label> 
     <select name="select-h-6b" id="select-h-6b"> 
      <option value="#">Singer</option> 
      <option value="#">Drummer</option> 
      <option value="#">Guitar</option> 
     </select> 
     <label for="select-h-6c">Members</label> 
     <select name="select-h-6c" id="select-h-6c"> 
      <option value="#">1</option> 
      <option value="#">2</option> 
      <option value="#">3</option> 
     </select> 
    </fieldset> 
</form> 

は、その上に記事のタイトルと記事内容と現時点では私のコードですが、私は投稿する詳細で追加したがでできます

$posts = getAllPosts(); 

<div id="searchpost"> 
     <div class="ui-bar ui-bar-a"> 
     <div id="postTitle"> 

     <?php echo $posts[$p]["post_title"];?></div> 
     </div> 
     <div class="ui-body ui-body-a"> 
     <div id="postContent"> 
     <?php echo $posts[$p]["post_content"];}?></div> 
     </div> 
     </div> 

と機能:

function getAllPosts() { 
    require "config.php"; 
    $posts = $c->query ("SELECT * FROM posts"); 

    if ($posts->num_rows > 0) { 

     while($row = $posts->fetch_assoc()) { 

       $postData[] = array("user_id" => $row[ "user_id" ], "post_title" => $row[ "post_title" ], "post_content" => $row[ "post_content" ]); 
      } 
    } else { 
     return "No Data"; 
    } 
    return $postData; 
} 
のみ者オプションで瞬間にそれを

しかし、わかるように、データベース内のものを特に必要としています。詳細の代わりにドロップダウンメニューで選択したものを表示するにはどうすればよいですか。

ロック、シンガー、2人のメンバーを選択するなど、複数選択したオプションに追加できます。オプション3で特定のものを必要としない場合は、3つのレコードすべてが表示されます。そのカテゴリのすべてを検索するオプション。

私はデータベースレコードを検索し、JQuery Mobileドロップダウンバーで選択したすべてのオプションに対応するコードを記述するコードを記述しています。

私はあなたに私が助けを必要としていることを理解していただければ幸いです。

編集:

マイデータベース: Image

接続:(config.phpを)

<?php 

    $c = mysqli_connect("localhost", "user", "pass", "database"); 

    // Check connection 
    if (mysqli_connect_errno()) 
    { 

     echo "Failed to connect to MySQL: " . mysqli_connect_error(); 

    } 

?> 

答えて

0

私はこの質問を想定したが、提出に基づいてSQLクエリを構築する方法についてですフォームデータ。代わりにPHPのPDO拡張を使用すると、より安全です(一般的にはより簡単です)。 php.netがあなたを助けます。

PDOに移動した後のクエリ(強くお勧めします)は、おおよそ次のようになります。

$sql = ‘select * from posts 
    where genre=:genre 
    and role=:role 
    and members=:members’; 

$sth = $dbh->prepare($sql); 
$sth->execute(
    array(‘:genre’ => $_GET[‘genre’], 
      ‘:role’ => $_GET[‘role’], 
      ‘:members’=> $_GET[‘members’]) 
    ); 
$result = $sth->fetchAll(); // this should be enough to echo a result 
+0

コメントしていただきありがとうございます.2番目と3番目のコードの代わりにこのコードを使用しますか? :) –

+0

getAllPosts関数内で、正確に記述すれば失敗します。私が貼り付けたのは、あなたのデータベーススキーマについて何も理解していない、大まかなガイドだけでした。 (これはおそらくあなたが答えを持っていない可能性が高いです - 質問は正しく答えることが不可能です) – MickRip

+0

私は自分のデータベースと設定を追加しました。 –