Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.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 如何将表与SQL组合?_Php_Mysql - Fatal编程技术网

Php 如何将表与SQL组合?

Php 如何将表与SQL组合?,php,mysql,Php,Mysql,好的,我有两个信息表:电影和历史。My movies db拥有关于电影的所有信息。这些是电影中的行:id、标题、照片、目的地、描述、分级、长度、喜欢 My history db包含有关用户单击的电影的所有信息。这些是历史记录中的行:id、user\u id、movie\u id 问题 我正在开发一个名为“我的历史记录”的功能。如何在一个SQL查询中显示他们的历史记录并从电影中获取信息 例如: $db->query("SELECT * FROM movies ORDER BY TABLE h

好的,我有两个信息表:电影和历史。My movies db拥有关于电影的所有信息。这些是电影中的行:id、标题、照片、目的地、描述、分级、长度、喜欢

My history db包含有关用户单击的电影的所有信息。这些是历史记录中的行:id、user\u id、movie\u id

问题

我正在开发一个名为“我的历史记录”的功能。如何在一个SQL查询中显示他们的历史记录并从电影中获取信息

例如:

$db->query("SELECT * FROM movies ORDER BY TABLE history WHERE user_id='$id'");
如果答案看起来很简单,我道歉。这是我从事编程工作的第一年。感谢您提供的帮助。

您的问题是:

SELECT * FROM movies m
INNER JOIN history h ON h.movie_id = m.id
WHERE h.user_id = $id
ORDER BY h.id  --not sure what you want to order by, but it goes here
也就是说,您需要了解SQL注入。您应该使用,而不是直接将变量添加到查询中。

您的查询应该是:

SELECT * FROM movies m
INNER JOIN history h ON h.movie_id = m.id
WHERE h.user_id = $id
ORDER BY h.id  --not sure what you want to order by, but it goes here

也就是说,您需要了解SQL注入。您应该使用,而不是直接将变量添加到查询中。

您的查询SQL中有一些错误。 我想你可以试试:(在Mysql中)
SELECT movies.*从history-internal-JOIN-movies-ON-history.movie\u-id=movies.id其中user\u-id=$id

您的查询SQL中有一些错误。 我想你可以试试:(在Mysql中)
SELECT movies.*从history.movie\u id=movies.id,其中user\u id=$id

您要查找的是MySQL中的
JOIN
。您将需要执行类似的操作:

SELECT * FROM movies m 
JOIN history h ON m.id=h.movie_id 
AND h.user_id = $id
ORDER BY <column name>;
SELECT*FROM movies m
在m.id=h.movie\u id上加入历史h
h.user_id=$id
订货人;
这个
JOIN
背后的基本概念是,您从电影中获取主键(id),并在历史记录中加入对应的外键(movie_id)

还值得注意的是,
JOIN
交叉连接
、以及
内部连接
都是MySQL中的语法等价物


由于您刚刚开始编程的第一年,我强烈建议您查阅
JOIN
上的文档,并自己完全理解它,而不是复制和粘贴一个在这里有效的答案。从长远来看,这对你是有益的!请参阅有关
JOIN
语法的MySQL文档。

您要查找的是MySQL中的
JOIN
。您将需要执行类似的操作:

SELECT * FROM movies m 
JOIN history h ON m.id=h.movie_id 
AND h.user_id = $id
ORDER BY <column name>;
SELECT*FROM movies m
在m.id=h.movie\u id上加入历史h
h.user_id=$id
订货人;
这个
JOIN
背后的基本概念是,您从电影中获取主键(id),并在历史记录中加入对应的外键(movie_id)

还值得注意的是,
JOIN
交叉连接
、以及
内部连接
都是MySQL中的语法等价物


由于您刚刚开始编程的第一年,我强烈建议您查阅
JOIN
上的文档,并自己完全理解它,而不是复制和粘贴一个在这里有效的答案。从长远来看,这对你是有益的!请参阅有关
JOIN
语法的MySQL文档。

首先,
orderby
位于
WHERE
子句之后。第二,删除
TABLE
关键字并使用
JOIN
关键字第三,阅读类似于
SELECT h.*,m.title的内容h JOIN movies m on m.id=h.movie\u id,其中h.user\u id=$id
并不是您想要的,但应该开始使用。第四,找出您正在使用的RDBMS。首先,
orderby
位于
WHERE
子句之后。第二,删除
TABLE
关键字并使用
JOIN
关键字第三,阅读类似于
SELECT h.*,m.title的内容h JOIN movies m on m.id=h.movie_id,其中h.user_id=$id
并不是您想要的,但它应该让您开始使用。第四,找出您正在使用的RDBMS,不要使用邪恶“选择*”并不要使用邪恶的“选择*”