0

このテーブルからコンピューターを検索したいのですが、これをデータベースに保存すると、文字列を見つけてクエリに渡すことができるので、この文字列がデータベースに存在し、結果が表示されます

私がやっている

  1. URL から値を取得しています。私の URL は localhost\demo\article.php?filter=computer のようになります

    $_GET['filter']

  2. 私のデータベースは

    id | name |tag
    
    1  |java  |a:2:{i:0;s:8:"Computer";i:1;s:4:"Code"; 
    
    2  |dbms  |a:2:{i:0;s:8:"Computer";i:1;s:4:"dbms"; 
    
    3  |c     |a:2:{i:0;s:8:"elect";i:1;s:4:"Code"; 
    

今、私はコンピュータが存在するかコードがあるすべての行をフェッチしたいです

そのために私はクエリを使用しています

$query1 = "SELECT * FROM $tableName WHERE tag='%".$_GET['filter']."%' ";

しかし、コンピューターまたはコードを含む行は表示されません..

そのようなスタックオーバーフロータグのフィルタリング

4

2 に答える 2

5

問題を解決するには、クエリを次のように置き換える必要があります=like

$query1 = "SELECT * FROM $tableName WHERE tag like '%".$_GET['filter']."%' ";

これを行うより良い方法は、追加の 2 つのテーブルを作成することです。1 つはタグ (オプション) を含み、もう 1 つはタグ付け情報を含みます。

ここに画像の説明を入力

この記事はとても役に立ちます

于 2012-07-01T10:19:44.320 に答える
4

データベースを正規化すると、ドライバーで釘を回す必要がなくなります。

于 2012-07-01T10:15:29.260 に答える