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 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

我在这里看到不必要的逗号:FROM kunde,vip, WHERE.

于 2012-08-26T19:21:50.990 回答
0

此外,请考虑在您未来的开发中使用PDO,因为它与 mysqli 和 mysql_query 不同,是用于访问数据库的更一致的接口。

于 2012-08-26T20:36:50.643 回答