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/