Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.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 如果y.table1=y.table2多个表,则SQL从表2中选择x行_Php_Mysql_Sql_Select - Fatal编程技术网

Php 如果y.table1=y.table2多个表,则SQL从表2中选择x行

Php 如果y.table1=y.table2多个表,则SQL从表2中选择x行,php,mysql,sql,select,Php,Mysql,Sql,Select,我有两个不同的表格:类别和产品。每个表都有category\u id列。 为了在选择ing时输出数组,我使用echo htmlentities 在productscategory\u id=categoriescategory\u id的地方,选择product name和price等字段的SQL语法是什么?(行标题与->名称(在prod上)和名称(在cat上)相同 请记住,我首先要根据产品表中的标准选择产品,然后如果cat.table中的category\u id等于产品表中的category

我有两个不同的表格:类别产品。每个表都有
category\u id
列。 为了在
选择ing
时输出数组,我使用
echo htmlentities

在products
category\u id=categories
category\u id的地方,选择product name和price等字段的SQL语法是什么?(行标题与->名称(在prod上)和名称(在cat上)相同

请记住,我首先要根据产品表中的标准选择产品,然后如果cat.table中的
category\u id
等于产品表中的category\u id,则它将显示类别名称(在category表中)

以下是原始代码:

<?php
include('includes/global.php');

$sql = $db->query("SELECT name FROM ".DB_PREFIX."products WHERE active=1 AND closed=0 AND deleted=0 AND approved = 1 AND name LIKE '%".htmlentities($_GET["search"],  ENT_QUOTES)."%' LIMIT 20");

while($product_array = $db->fetch_array($sql)) {
    echo htmlentities($product_array["name"], ENT_QUOTES, $lang[codepage])."\n";
}

有什么建议吗?

我认为这是一个排序问题,需要先构建整个表

SELECT a.name,a.buy_price,c.name FROM ".DB_PREFIX."products a 
INNER JOIN ".DB_PREFIX."categories c ON a.category_id = c.category_id 
WHERE active=1 AND closed=0 AND deleted=0 AND approved = 1 AND name LIKE '% ".htmlentities($_GET["search"],  ENT_QUOTES)."%' 
LIMIT 20

这是我得到的最后一个代码,在搜索时(在相应的搜索框中)没有得到任何输出。我个人认为合并两个表中的数据有问题。或者我认为这不是回应htmlentities的正确方法

$sql = $db->query("SELECT a.name,c.name,a.buyout_price FROM ".DB_PREFIX."auctions a INNER JOIN ".DB_PREFIX."categories c ON a.category_id = c.category_id WHERE active=1 AND closed=0 AND deleted=0 AND approved = 1 AND a.name LIKE '% ".htmlentities($_GET["search"],  ENT_QUOTES)."%' LIMIT 20");

while($product_array = $db->fetch_array($sql)) {
    echo htmlentities($product_array["a.name"], ENT_QUOTES, $lang[codepage])." from category ";
    echo htmlentities($product_array["c.name"], ENT_QUOTES, $lang[codepage])." for ";
    echo htmlentities($product_array["a.buyout_price"], ENT_QUOTES, $lang[codepage])." EUR \n";}

我得到错误:运行脚本时发生Mysql错误:您尝试运行的查询是无效的Mysql错误输出:where子句中的列“name”是不明确的SQL查询:从表中选择A.name、c.name、A.buy\u price\u products A内部联接表\u categories c ON A.category\u id=c.category_id,其中active=1,closed=0,deleted=0,approved=1,名称为“%va%”和“va”这是我的键盘搜索输入。这是一个搜索建议顺便说一句。请尝试使用a.name,因为name在products表中的别名为ai did try。请查看它现在的外观。我没有得到任何输出您正在使用哪个DBMS?Postgres?Oracle?它是MySQL@a_horse_,没有名称
$sql = $db->query("SELECT a.name,c.name,a.buyout_price FROM ".DB_PREFIX."auctions a INNER JOIN ".DB_PREFIX."categories c ON a.category_id = c.category_id WHERE active=1 AND closed=0 AND deleted=0 AND approved = 1 AND a.name LIKE '% ".htmlentities($_GET["search"],  ENT_QUOTES)."%' LIMIT 20");

while($product_array = $db->fetch_array($sql)) {
    echo htmlentities($product_array["a.name"], ENT_QUOTES, $lang[codepage])." from category ";
    echo htmlentities($product_array["c.name"], ENT_QUOTES, $lang[codepage])." for ";
    echo htmlentities($product_array["a.buyout_price"], ENT_QUOTES, $lang[codepage])." EUR \n";}