3

PHP、javascript、mysql でこの検索機能を作成しています。

このコードは正常に機能しています。html 検索ボックスにデータを入力すると、%keyword% がこの PHP 関数に送信され、必要なデータが返されます。

$query = "SELECT id,fornavn,efternavn,adresse,postnr,city,tlf,kon,email,fodselsdag FROM kunde WHERE email LIKE '%$keyword%' OR fornavn LIKE '%$keyword%'";


$result = mysqli_query($dbc,$query);

if($result){
    if(mysqli_affected_rows($dbc)!=0){
      while($row = mysqli_fetch_array($result,MYSQLI_ASSOC)){
        listings($row['fornavn'],$row['efternavn'], $row['email'],$row['adresse'],$row['tlf'],$row['postnr'],$row['city'],$row['fodselsdag'],$row['id'],$bartype);
    }

上記の SQL の ID が別の ID に関連して格納される別の TABLE があります。テーブルは次のようになります。

Table name: vip
Colmns: id, brugerid, barid

ここで、上記のコードで SQL をカスタマイズしたいので、vip テーブルにも関係があるデータのみを選択します。

私はこのようにします:

SELECT *, kunde.id as kundeid FROM kunde,vip WHERE  vip.brugerid = kunde.id AND vip.barid =1 AND email LIKE '%$keyword%' OR fornavn LIKE '%$keyword%';

実際、複数のテーブルを追加するたびに、php コードが機能しなくなります。なぜこれが起こっているのですか? そして、どうすればこれを達成できますか?

どんな助けでも大歓迎です

4

3 に答える 3

2

http://dev.mysql.com/doc/refman/5.0/en/join.html

SELECT *, kunde.id as kundeid FROM kunde INNER JOIN vip ON (vip.brugerid = kunde.id) WHERE  kunde.id=1 AND email LIKE '%$keyword%' OR fornavn LIKE '%$keyword%'
于 2012-08-26T19:32:30.847 に答える
0

また、mysqliやmysql_queryとは異なり、データベースにアクセスするためのより一貫性のあるインターフェイスであるため、将来の開発でPDOを使用することを検討してください。

于 2012-08-26T20:36:50.643 に答える
0

ここに不要なカンマがあります: FROM kunde,vip, WHERE.

于 2012-08-26T19:21:50.990 に答える