php - 如何用mysql从已分解的数组中调用所有数据

标签 php mysql fpdf explode

explode 前我的数值90PAS010,80PAS010

然后我使用 explode 功能将它们分开

$site = $row["site"];
$exploded_site = explode(',', $site);

我想通过使用获得的每个数据来使用 fpdf 打印表格。这是我的代码:

$sql = mysqli_query($connect, "select * from site WHERE siteid='$exploded_site[0]'");
    while($row=mysqli_fetch_array($sql)){
       //do print table
    }

问题是它只显示 1 条数据,因为 $exploded_site[0]。 当数组有多个值时如何自动更改[0]

先谢谢了

最佳答案

解决方案之一是执行一次获取所有站点 ID 的 SQL 查询,而实现此目的的多种方法之一是使用 IN 条件。

$site = $row["site"];


/**
 * Function sanitizes and quotes each site id and returns a string to be used in the SQL IN operator.
 *
 *
 * @param string $site
 * @param mysql string
 * @return string
 */
function sanitizeSiteIds($site, mysqli $connect) {
    // split each site ids into arrays.
    $exploded_site = explode(',', $site);

    // escape all the site ids.
    $sanitizedSites = array_map(function($site) use($connect) {
        return mysqli_real_escape_string($connect, trim($site));
    }, $exploded_site);

    // join all the site ids to something like:
    $sitesInStr = implode(',', $sanitizedSites);

    return $sitesInStr;
}


$site = sanitizeSiteIds($site, $connect);


// query will fetch all site Ids
$sql = mysqli_query($connect, "select * from site WHERE siteid IN ($site)");
while($row=mysqli_fetch_array($sql)){
    //do print table
}

关于php - 如何用mysql从已分解的数组中调用所有数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58657193/

相关文章:

PHP 使用带有 fsockopen ssl 的 socks5 代理

mysql - 使用左连接限制查询

php - FPDF WriteHtml 不起作用

php - 将相对链接变成绝对链接

javascript - 使用 PHP 实现 Materializecss Toast

php - Laravel 5.4 搜索邮政区通配符

来自换行符的 MySQL 子字符串

php - fpdf多单元格中的行高

php - 在 FPDF 中生成换行符

php - 这个 POST 和 PHP 是否可以正常工作以获取输入并将其发布到主服务器?