Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用第二个表中的条件生成MySQL查询_Php_Mysql_Mysqli - Fatal编程技术网

Php 使用第二个表中的条件生成MySQL查询

Php 使用第二个表中的条件生成MySQL查询,php,mysql,mysqli,Php,Mysql,Mysqli,我试图构建一个查询,根据category列中的特定类别从表提要中选择数据。 我还有第二个表,其中列出了查询还应考虑的备选类别。我不知道如何将其合并到下面的代码中 例如: 如果$category='sports',下面的当前查询将选择类别与'sports'匹配的所有数据。 第二个表格列出了“体育”类的备选类别“足球”和“拜仁慕尼黑”。 新的查询现在应该选择类别匹配“体育”、“足球”和“拜仁慕尼黑”的所有数据 $sqlCommand = "SELECT * FROM feeds where cate

我试图构建一个查询,根据category列中的特定类别从表提要中选择数据。 我还有第二个表,其中列出了查询还应考虑的备选类别。我不知道如何将其合并到下面的代码中

例如: 如果$category='sports',下面的当前查询将选择类别与'sports'匹配的所有数据。 第二个表格列出了“体育”类的备选类别“足球”和“拜仁慕尼黑”。 新的查询现在应该选择类别匹配“体育”、“足球”和“拜仁慕尼黑”的所有数据

$sqlCommand = "SELECT * FROM feeds where category like '$category'"; 
$query = mysqli_query($myConnection, $sqlCommand) or die (mysqli_error()); 
While ($row = mysqli_fetch_array($query)) { 
    $fid1 = $row["id"];
    $feed_id1 = $row["feed_id"];
    $link1 = $row["link"];
    $title1 = $row["title"];
    $output .= '<a href="detail/' . $fid1 . '" title="' . $title1 . '">' . $title1 . '</a><br/>';
    } 
    mysqli_free_result($query); 
echo $output;
$sqlCommand=“从feed中选择*类别,如“$category”;
$query=mysqli_query($myConnection,$sqlCommand)或die(mysqli_error());
而($row=mysqli_fetch_数组($query)){
$fid1=$row[“id”];
$feed_id 1=$row[“feed_id”];
$link1=$row[“link”];
$title1=$row[“title”];
$output.='
'; } mysqli_free_结果($query); echo$输出;
也许这样做可以:

CREATE TABLE data (data integer, category varchar(40));
INSERT INTO data (data, category) VALUES (10, "sport");
INSERT INTO data (data, category) VALUES (20, "soccer");
INSERT INTO data (data, category) VALUES (30, "programming");
INSERT INTO data (data, category) VALUES (40, "Bayern Munich");

CREATE TABLE category_lookup (category1 varchar(40), category2 varchar(40));
INSERT INTO category_lookup (category1, category2) VALUES ("sport", "Bayern Munich");
INSERT INTO category_lookup (category1, category2) VALUES ("sport", "soccer");
INSERT INTO category_lookup (category1, category2) VALUES ("programming", "java");
查询:

SELECT * FROM data WHERE category IN (
  SELECT "sport" UNION 
  SELECT category2 FROM category_lookup WHERE category1 LIKE "sport");
请参阅SQL Fiddle:

如果在类别_查找表中添加一个条目进行自查找:

 INSERT INTO category_lookup (category1, category2) VALUES ("sport", "sport");

当然,你可以在查询中去掉工会。

你让我开心了。