我想得到一个值,但它出现了两次:
<?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);