php - mysql 结果按数组排序

标签 php mysql sorting

我想我不明白“排序”是如何工作的,所以请不要评判我。我真的找了一整天。

我有一个带有 Actor 列的电影表。一个名为“ Actor ”的专栏。 Actor 是由空格“”分隔的链接。链接的顺序非常重要。

我将链接分解为一个数组,看起来像 [0]-> link0, [1]->link1, ...

我有类型转换,其中每个 Actor 也有其电影链接。我不想进行 20 次不同的 sql 搜索,因此我用我想要的所有链接创建了一个变量,如下所示( WHERE actor_link = link1 OR actor_link = link2 OR 。 .)

问题是这样的。搜索可能会首先找到链接7,所以我的排序消失了。我能做些什么来保留电影表中的该订单。我想按电影中的受欢迎程度显示 Actor ,而不是数据库的顺序。

你能给我另一种方法来搜索 Actor ,而不进行“x”sql搜索并仍然保持顺序吗?

$actors[] = explode(" ", $row['actors_link']); 
$x=0;
$actors2 = '';
while ($actors[0][$x]) {
  $actors2 = $actors2 . "`link_imdb_actor` = " . "'".$actors[0][$x]."' OR ";
  $x++;
}
$actors2 = substr($actors2, 0, -3);

$sql = "SELECT * FROM `actors` WHERE $actors2";
$sql_result = mysql_query($sql) or die(" ");
while ($row3 = mysql_fetch_array($sql_result)) {
  echo $row3['link_imdb_actor'];
}

电影《 Sprite 旅社》由亚当·桑德勒、安迪·萨姆伯格和赛琳娜·戈麦斯主演。我的搜索显示赛琳娜·戈麦斯、安迪·萨姆伯格、亚当·桑德勒,因为这是我数据库中的顺序。如何按 actor 数组的顺序对 sql 结果进行排序?谢谢!

最佳答案

为了扩展 Arjan 的评论,如果您希望能够实际使用 Actor 数据(例如使用它进行搜索),我会推荐至少另外两个表。一个称为 actor,具有 actorID、firstName 和 lastName 字段。另一个表是castings,其中包含castingID、actorID、movieID 和castingOrder 字段。

每个castingID都会将一个 Actor 链接到一部电影 - 这将有助于轻松搜索特定 Actor 出演过的每部电影或特定电影中的每个 Actor 。

castingOrder 字段可用于维护您想要的顺序。

关于php - mysql 结果按数组排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13500814/

相关文章:

php - 连接具有第一个表中的重复项的表 Code Igniter Active Records

php - 如何从 php 连接到 unix 套接字

带列表的 MySQL 存储过程调用

c++ - 如何对每行字母都不同的char行进行排序?

python - (python) 不使用内置函数存储数据

php - Gmail 电子邮件地址提取器

php - 如何在每个线程的PHP扩展中封装全局变量?

MySQL 按current_timestamp 选择上个月的数据

mysql - 内连接 2 个表并计算每个表中外键的出现次数

java - 这是插入排序算法的可接受实现吗?