需要一些有关使用 explode 函数从 Mysql 获取数据的帮助

Need Some Help Regarding Fetching Data from Mysql using explode function

在下面的脚本中,我想使用 explode 函数以及 explode 函数中的变量从 mysql 获取数据。 这是我想要的

<?php
include ('config.php');
$track = "1,2,3";
$i = 1
$trackcount = explode(",",$track);
$sql = "SELECT * FROM tracks WHERE id='$trackcount['$i']'";
$retval = mysql_query($sql, $conn);
while ($row = mysql_fetch_array($retval, MYSQL_ASSOC))
{
echo "{$row['track_name']}";
}
mysql_free_result($retval);
?>

这是代码

$sql = "SELECT * FROM tracks WHERE id='$trackcount[$i]'";

我希望 sql 从曲目 table 中获取数据,其中 id = $trackcount[$i] $trackcount[$i] mysql 的任何值都应该获取,但它显示一个空白屏幕。 如果我把这个

$sql = "SELECT * FROM tracks WHERE id='$trackcount[1]'";

完美运行

通常您会希望对此类查询使用 IN 运算符,因此对您来说这将是:-

$sql="SELECT * FROM `tracks` WHERE `id` in (".$track.");";

或者,如果 $id 在数组中,

$sql="SELECT * FROM `tracks` WHERE `id` in (".implode( ',', $array ) .");";

将您的 $trackcount[$i] 保存在一个变量中,然后将其传递给下面给出的查询

<?php
include ('config.php');
$track = "1,2,3";
$i = 1;
$trackcount = explode(",",$track);
$id=$trackcount[$i];
$sql = "SELECT * FROM tracks WHERE id='$id'";
$retval = mysql_query($sql, $conn);
while ($row = mysql_fetch_array($retval, MYSQL_ASSOC))
{
echo "{$row['track_name']}";
}
mysql_free_result($retval);
?>

还有一件事检查你以前的代码与你的查询的回显,看看什么是正确的。

echo $sql = "SELECT * FROM tracks WHERE id='$trackcount['$i']'";//like this

问题出在您的查询上

$sql = "SELECT * FROM tracks WHERE id='$trackcount['$i']'";//change 

$sql = "SELECT * FROM tracks WHERE id='$trackcount[$i]'";