我正在用PHP,javascript和mysql创建这个搜索功能。
此代码正常运行。我在一个html搜索框中输入一些数据,它将%关键字%发送到这个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);
}
我有另一个TABLE,其中上面的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代码就会停止工作..任何想法为什么会发生这种情况?我怎么能做到这一点?
非常感谢任何帮助
答案 0 :(得分: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%'
答案 1 :(得分:0)
我在这里看到了不必要的逗号:FROM kunde,vip, WHERE
。
答案 2 :(得分:0)
另外,考虑在未来的开发中使用PDO,因为它是一个更加一致的访问数据库的接口,如mysql和mysql_query。