【发布时间】:2015-11-04 00:02:22
【问题描述】:
我有一组用户提交的“搜索标签”,例如苹果、橙子、愤怒、爱情等。每组这些标签都放入一个数组中。该数组表示由唯一用户提交的一组标签。
我想获取这些标签,将它们提交到数据库中,并获取与这些标签在同一行中的相应书籍。这些书籍必须与标签具有相同类型的数组结构,以便可以在 html 脚本中将它们分配回每个用户。
例如:tagsarray[0][1] = 'love',booksarray[0][1] = 'the book corresponding to 'love''
我知道如何使用循环和推送数组来完成这项工作。我在下面写了这个脚本,但它根本不起作用。
<?php
$tags = array(array("apples","oranges", "pears"),
array("sun", "blood"),
array("anger", "love"));
$con = mysql_connect("Stories.mysql.anyhost.com", "user", "password");
mysql_select_db("Stories");
foreach ($tags as $tag) {
$one = array();
$two = array();
for ($i = 0; $i < count($tag); $i++) {
$tag_value = $tag[$i];
$selectbooks = "SELECT * FROM Journeys
WHERE book_tags = '$tag_value'";
$query = mysql_query($selectbooks);
while ($row = mysql_fetch_assoc($query)) {
$one[] = $row['books'];
}
$two[] = $one;
}
}
echo json_encode($two);
// should echo out [ [books1, books2], [books3, books4], [books5, books6] ] - but instead it returns [[]]
mysql_close($con);
?>
如果有人能查明我的脚本的问题和/或提出更好的替代方案,那就太好了。
【问题讨论】:
-
您在查询中使用
$figure_value,但从不定义它。也许应该是$tag_value? -
array("anger: 你错过了结束双引号。 -
看看这个:stackoverflow.com/questions/1053424/…。您将能够告诉我们“根本不起作用”是什么意思。
-
@MarcB 和 caCtus,当我在这个问题中输入脚本时,这些只是错误。我已经更正了。
-
count($figure)仍然存在。您正在计算一些不存在的东西(除非是 c/c 错误)。
标签: php mysql sql arrays multidimensional-array