【问题标题】:How I can sort the data with array in php?如何在php中使用数组对数据进行排序?
【发布时间】:2018-03-14 08:38:20
【问题描述】:

在邮递员中,

我像发布数组一样

key => Image[] / value => 1
key => Image[] / value => 2
key => Image[] / value => 3

我想当我放一个用户卡片图片的数组时,接收卡片的Idx和Name。

所以我这样查询,

$query = "SELECT DISTINCT
                    Idx AS Idx, 
                    Name AS Name 
                    FROM Card
                    WHERE Card.Image IN ('$_POST[Image]')";

但是,它没有接收到数据。 所以我删除''所以

WHERE Card.Image IN ('$_POST[Image]')" 
=> WHERE Card.Image IN ($_POST[Image])";

然后在'where子句'中返回未知列'Array'

我不知道这是什么问题。

当我发布像 /key name[]/value 1 这样的数组时 我知道它可以接收 $_POST[name]。

我如何发布数组并接收它。

请帮帮我。

【问题讨论】:

  • 添加您的邮政编码。您似乎没有正确发布图像。要同时设置多个文件/图像,您需要一个 preventdefault 和一个 ajax 函数并一个一个地插入(这是最安全可靠的选项)。
  • Card.Image-> 是Image 列有数字吗?
  • @JoelBonetR 我只是使用邮递员,所以我不添加这个,而是添加图片
  • 哦,好吧,没关系
  • @PolarisNation 你检查了我上次编辑的答案吗?请检查并尝试让我知道是否有效?

标签: php sql arrays


【解决方案1】:

我希望Image 列包含数字。

使用implode() 更正您的IN 查询

$string=$_POST['Image'];
$array= implode(',', $string);
$query = "SELECT DISTINCT Idx AS Idx, Name AS Name FROM Card WHERE Card.Image IN ($array)";

注意:-

1.查询将变为:-SELECT DISTINCT Idx AS Idx, Name AS Name FROM Card WHERE Card.Image IN (1,2,3)。现在它可以正常执行了。

2.尝试使用mysqli_*prepared statements PDO 以防止您的代码被SQL-INJECTION。您当前的代码对其开放。

【讨论】:

  • 感谢您节省了我的时间。解决方案已解决。
【解决方案2】:
$string=$_POST[Image];
$array=array_map('intval', explode(',', $string));
$array = implode("','",$array);
$query = "SELECT DISTINCT Idx AS Idx, Name AS Name FROM Card WHERE 
           Card.Image IN ('".$array."')";

【讨论】:

  • 虽然此代码可能会回答问题,但提供有关此代码为何和/或如何回答问题的额外上下文可提高其长期价值。
  • 我尝试了这段代码,但没有得到任何响应
猜你喜欢
  • 2021-07-31
相关资源
最近更新 更多