php - 如何使用 while() 和 array() 从 $_GET 变量打印多个 ID

标签 php mysql

我今天来这里是因为我遇到了一个我似乎无法解决的小问题,这就是它出现在这里的原因。 问题是我试图从 $_GET 变量中获取多个 ID 以打印出来。我尝试使用 array 并且很棒,它可以工作,但问题是它用 [0] 制作单独的数组,我需要它作为同一个数组中的一个而不是 array() array() ,这就是它的作用。

所以我使用 while() 和 mysql_fetch_array 从数据库中获取结果,它依赖于来自 url 的 $_GET,以便获取正确的 ID。所以在我传入 api.php?do=remove&id=1,4,7 的 URL 中,它只会打印出第一个 id,而不是其他名称。正如我所说,我尝试使用 array() 结果是这样的:

Array
(
    [0] => BzlXO.jpg
)
Array
(
    [0] => cHZTk.jpg
)
Array
(
    [0] => 9yset.jpg
)
Array
(
    [0] => Ss04V.jpg
)

我不明白为什么要这样做,因为我需要它像在一个数组中一样

Array (

   [0] => BzlXO.jpg,
   [1] => cHZTk.jpg,
   [2] => 9yset.jpg,
   [3] => Ss04V.jpg
)

这样当我将它们内爆时,它会显示为文本,如下所示: “您删除了图像“BzlXO.jpg、cHZTk.jpg、9yset.jpg、Ss04V.jpg” 用类似的东西

        $iName[imagename] = array($iName[imagename]);
        $name = implode(",", $iName[imagename]);

这是我的代码:

这是 URL“api.php?do=remove&id=1,4,7”

      $ID = $_GET['id'];
    $query = "SELECT ID,imagename FROM uploads WHERE ID IN ({$ID}) AND username = '{$uploader}'";
    $result = mysql_query($query);

      while( $iName = mysql_fetch_array($result)){
          $querys = "DELETE FROM uploads WHERE ID IN ({$ID}) AND username = '{$uploader}'";
      $results = mysql_query($querys);

          if(!$results) {
       $api_message = 'Failed to get a Removal result';
       } else {

            $iName[imagename] = array($iName[imagename]);
            $name = implode(",", $iName[imagename]);

           $api_message = "You removed image(s) $name"; 

          }
}

输出:

您删除了图片 BzlXO.jpg

但我需要它是:

输出: 您删除了图像“BzlXO.jpg,cHZTk.jpg,9yset.jpg,Ss04V.jpg”

如有任何帮助,我们将不胜感激,如果需要更多信息,请告诉我,我会提供 谢谢

最佳答案

除了 raina77ow 发布的解决方案之外,控制流也存在问题,因为您正在为每次迭代执行 DELETE FROM uploads WHERE ID IN (...) 语句while 循环。这将删除第一次迭代中的所有记录。您需要将其更改为:

$ID = $_GET['id'];
$names = array();
$query = "SELECT ID,imagename FROM uploads WHERE ID IN ({$ID}) AND username = '{$uploader}'";
$result = mysql_query($query);

  while( $iName = mysql_fetch_array($result)){
      $querys = "DELETE FROM uploads WHERE ID = {$iName['ID']} AND username = '{$uploader}'";
      $results = mysql_query($querys);
      if(!$results) {
       $api_message = 'Failed to get a Removal result';
      } else {
        $names[] = $iName['imagename']);
      }
  }
  $name = implode(",", $names);
  $api_message = "You removed image(s) $name"; 

关于php - 如何使用 while() 和 array() 从 $_GET 变量打印多个 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11370964/

相关文章:

php - TCPDF - 如何在使用 tcpdf 创建的 pdf 中显示具有绝对位置的 div?

mysql - 时间间隔查询返回空闲时间?

php - Codeigniter事件记录和表别名

java - JDBC 连接太多

php - 如何格式化mysql中的now函数

php - 在 magento cms > 页面上添加自定义样式

PHP cURL 如何添加用户代理值或克服服务器阻止 cURL 请求?

php - 尝试从 user_id = $_SESSION ['id' 的数据库表中进行选择时出错]

php - PDO/mySQL 如何绑定(bind)多个值来存储多行

mysql - 从 MySQL 中的 JSON 列中的 JSON 项目的日期查询日期之前的记录