php - while($row = mysqli_fetch_array($result)){ 选择多个表时

标签 php mysql

我正在使用 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);
    }

我有另一个表,其中存储了与另一个 ID 相关的来自上述 SQL 的 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 代码就会停止工作。知道为什么会这样吗?我怎样才能做到这一点?

任何帮助将不胜感激

最佳答案

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

关于php - while($row = mysqli_fetch_array($result)){ 选择多个表时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12133130/

相关文章:

javascript - 新变量ajaxObj不起作用

php - 如何在 Twig 中使用 PHP 模板引擎而不是 Silex 中的 Twig 语法

mysql - 使用MySQL对多个范围内的数字进行排序

javascript - Ajax/Javascript - 仅刷新一次

javascript - 收到表单信息后将查看者发送/重定向到 URL

php - 如何防止将所有内容都包含在一个文件中?

php - 如何在 phpBB 论坛上创建与已保存的用户名和密码相同的用户名和密码

MySQL utf8mb4,保存表情符号时出错

php - 从长文本中取出行

mysql - 从 varchar 字段获取最大值