Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.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 将数据从一个表提取到另一个表_Php_Html_Mysql_Function_Web - Fatal编程技术网

Php 将数据从一个表提取到另一个表

Php 将数据从一个表提取到另一个表,php,html,mysql,function,web,Php,Html,Mysql,Function,Web,我在SQL中有两个表,第一个表名为cars `cars` (`car_id` int(100) NOT NULL,`car_first_registration` text NOT NULL, `car_brand` int(11) NOT NULL, `car_profile_image` text NOT NULL, `car_cat` int(11) NOT NULL, `car_price` decimal(10,0) NOT NULL, `car_vin` char(20) NOT N

我在SQL中有两个表,第一个表名为cars

`cars` (`car_id` int(100) NOT NULL,`car_first_registration` text NOT NULL, `car_brand` int(11) NOT NULL, `car_profile_image` text NOT NULL, `car_cat` int(11) NOT NULL, `car_price` decimal(10,0) NOT NULL, `car_vin` char(20) NOT NULL, `car_mileage` char(20) NOT NULL, `car_seats` int(11) NOT NULL, `car_gearbox` text NOT NULL, `car_ext_color` char(30) NOT NULL, `car_int_color` char(20) NOT NULL, `car_desc` text NOT NULL, `car_stock` varchar(255) NOT NULL, `car_keywords` text NOT NULL, `car_visibility` tinyint(1) NOT NULL, `car_ref` char(8) NOT NULL ) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=latin1
`car_brands` (`brand_id` int(100) NOT NULL,`brand_title` text NOT NULL) ENGINE=InnoDB AUTO_INCREMENT=40 DEFAULT CHARSET=latin1;
在cars表中,我可以插入包含许多符合列的信息的汽车,但我有一个问题,cars表中的car\u brand存储为一个值,该值取自car\u brands:预加载的品牌,因此当我插入汽车时,我从car\u brands中选择品牌,car\u brands有两列id和标题,但问题是,当我想要得到汽车时,汽车品牌被存储为一个数字,这个数字等于汽车品牌中的ID 例如,我有一辆品牌为BMW的汽车,在car\u brands表中以ID=4的形式存储,因此它将在car\u brand in cars表中以4的值存储。我想在GET方法中使用这个值,将产品显示为文本(BMW)而不是4 这是我的汽车显示代码,请告诉我要更正什么,以便我可以显示名称而不是ID

注意:不要混淆car_品牌和car_品牌,car_品牌是一个表格,car_品牌是cars表格中的一列

真的非常感谢:):):)


您已经知道如何加入。所以,让它变得简单,只需一个查询即可完成所有您想要的操作

将第一个查询更改为:

SELECT * FROM cars         
INNER JOIN car_brands    
ON cars.car_brand=car_brands.brand_id AND cars.car_visibility = 1
您不再需要任何查询

无论您在哪里需要显示汽车的品牌名称,都可以使用$row_pro['brand_title']。因此,您可以更改以下内容:

$car_brand = $row_pro['car_brand'];
为此:

$car_brand_id = $row_pro['car_brand'];
$car_brand_name = $row_pro['brand_title'];

顺便说一下,我建议您阅读有关关系和索引的内容,以创建更好的数据库结构。

您已经知道如何加入。所以,让它变得简单,只需一个查询即可完成所有您想要的操作

将第一个查询更改为:

SELECT * FROM cars         
INNER JOIN car_brands    
ON cars.car_brand=car_brands.brand_id AND cars.car_visibility = 1
您不再需要任何查询

无论您在哪里需要显示汽车的品牌名称,都可以使用$row_pro['brand_title']。因此,您可以更改以下内容:

$car_brand = $row_pro['car_brand'];
为此:

$car_brand_id = $row_pro['car_brand'];
$car_brand_name = $row_pro['brand_title'];


顺便说一句,我建议您阅读有关关系和索引的内容,以创建更好的数据库结构。

也许可以将
汽车品牌。品牌id
替换为
汽车品牌。如果您执行查询并在某处显示结果,那么长查询中的品牌标题将起作用。好极了,蝙蝠侠!使用点状标记将使您的描述更具可读性。您已经知道如何进行连接。为什么不在第一个查询中使用连接,在一个查询中获取品牌名称?我如何使用第一个查询在一个查询中获取品牌名称?谢谢我的最新答案可能会将
汽车品牌。品牌id
替换为
汽车品牌。如果您执行查询并在某处显示结果,那么长时间查询中的品牌标题将起作用。祝您好运,蝙蝠侠!使用点状标记将使您的描述更具可读性。您已经知道如何进行连接。为什么不在第一个查询中使用连接,在一个查询中获取品牌名称?我如何使用第一个查询在一个查询中获取品牌名称?谢谢我的最新答案Hello@Mojtaba好的,我已经把它放了,但它仍然显示为一个ID,我应该替换它吗??回声“;回声“@安东尼奥切拉拉,品牌名称为$row_pro['brand_title']。我更新了我的answer@AntonioChelala,很乐意帮忙。别忘了向上投票;)哦,好吧,因为我是新来的;)当我投票的时候,它说我不能,因为我只有不到15个reputations@AntonioChelala,没问题。tnxHello@Mojtaba好的,我已经把它放了,但是它仍然显示为一个ID,我应该替换它吗??回声“;回声“@安东尼奥切拉拉,品牌名称为$row_pro['brand_title']。我更新了我的answer@AntonioChelala,很乐意帮忙。别忘了向上投票;)哦,好吧,因为我是新来的;)当我投票的时候,它说我不能,因为我只有不到15个reputations@AntonioChelala,没问题。tnx