值增加了两倍——PHP


Value comes up twice - PHP

我想得到一个值,但它出现了两次:

<?php
    session_start();
    $username = $_SESSION['user'];
    include 'connect.php';
    if (isset($_GET['var'])) {
        $var = $_GET['var'];
        echo "<br>";
        echo $var;
        $pieces = explode(",", $var);
        foreach ($pieces as $i) {
            $sql    = "SELECT title FROM interests WHERE id = '$i' ";
            $result = mysqli_query($con, $sql);
            $row    = mysqli_fetch_array($result);
        }
        $value = join(",", $row);
    }
    echo $username;
    echo $value;
?>

其结果为:result, result;它应该只作为1个结果出现,而不是重复

mysqli_fetch_array同时返回一个数字索引数组和关联数组。这意味着您可以获得同一数组中每个字段的两个副本(一个按数字索引,一个按名称索引)。将调用更改为仅获取关联数组:

$row    = mysqli_fetch_array($result, MYSQLI_ASSOC);

关于下面评论中讨论的第二个问题,试试这个:

        $titles = [];
        foreach ($pieces as $i) {
            $sql    = "SELECT title FROM interests WHERE id = '$i' ";
            $result = mysqli_query($con, $sql);
            $row    = mysqli_fetch_array($result, MYSQLI_ASSOC);
            $titles[] = $row["title"];
        }
        $value = join(",", $titles);