php - MYSQL、连接、AS、LIKE

标签 php mysql sql

我对 SQL 或 DB 的了解非常有限,为零,所以提前道歉。

我正在尝试在网页中创建一个类似表格的结构,一列用于膳食名称,一列用于配料 - 也可以通过按钮进行搜索。

编辑:

感谢大家的回复,他们非常有帮助。 错误不再发生,但是现在我没有从数据库中得到任何结果,但没有错误。

include("inc/dbConn.php"); /////$db_conx

if(isset($_POST["search"])){   
    $searchq = $_POST["search"];
    $sql ="
           SELECT main_meal.name, ingred.name
           FROM main_meal
           JOIN meal_ingred on meal_ingred.meal_id = main_meal.id
           JOIN ingred ON ingred.id = meal_ingred.ingred_id
           WHERE ingred.name LIKE '%$searchq%'";
    $results = $db_conx->query($sql);   
    var_dump($results);
    if($results->num_rows){

        while ($row =$results->fetch_object()){
            echo "{$row->name} ({$row->name})<br>";

        }     
    }    
}

为了澄清,这是我的结构:

(抱歉,外部链接,我没有足够的声誉来发布图像。)

http://i30.photobucket.com/albums/c340/Tyrage/Untitled-2_zpsc48126b3.png

$结果转储:

object(mysqli_result)#2 (5) { ["current_field"]=> int(0) ["field_count"]=> int(2) ["lengths"]=> NULL ["num_rows"]=> int(0) ["type"]=> int(0) }

很明显我不知道我在做什么,所以非常感谢任何帮助。

谢谢。

最佳答案

这里缺少一个关系表,它将存储膳食和成分之间的联系。

您的查询也有错误,因为首先您尝试正确使用 a/b 命名来命名列,然后使用它来命名表。

恕我直言,你应该这样做(添加关系表):

if(isset($_POST["search"])){   
    $searchq = $_POST["search"];
    $sql ="
           SELECT main_meal.name AS a, ingred.name as b
           FROM main_meal 
           JOIN rel_meal_ingred on rel_meal_ingred.meal_id = main_meal.id
           JOIN ingred ON ingred.id =  rel_meal_ingred.ingred_id
           where ingred.name LIKE '%$searchq%'";

    $results = $db_conx->query($sql);   

       if($results->num_rows){ //////line 15
       while ($row =$results->fetch_object()){
       echo "{$row->a} ({$row->b})<br>";

       }       
       }    
}

关于php - MYSQL、连接、AS、LIKE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23318237/

相关文章:

javascript - 从循环中启动一个函数,但只有一次

php - Laravel 上传文件到项目目录外的不同存储

php - mysql中的order by应该与excel中的sorted相同吗?

sql - 如何将具有相同列值的mysql行分组为一行?

mysql - 仅从某些行中选择列的最大值

javascript - 使用 php 将地址从 mysql DB 读取到数组中进行地理编码

javascript - 多个ajax调用同一个文件来执行同一个文件中的不同代码?

php - 改变变量

java - Java-MySQL高负载应用程序崩溃

java - 根据条件仅将选定值从一个表复制到另一表