我有上面的代码,我用它来内爆一些变量。 问题是我需要为
$hostess_name[]
创建与我为 $hostess_id_selected[]
所做的相同的东西。
我不知道我做错了什么。
我需要像我对$hostess_id_selected1
那样将其内爆
foreach($hostess_id as $val) {
$hostess_id_selected[] = $val;
$sqlnomehostess="SELECT nome_hostess FROM hostess where id='$val'";
$resultnomehostess=mysql_query($sqlnomehostess)or die(mysql_error());
$hostess_name= array();
while ($row=mysql_fetch_array($resultnomehostess,MYSQL_ASSOC)) {
$hostess_name[] = $row['nome_hostess'];
}
}
$hostess_id_selected1 = implode("-",$hostess_id_selected);
你有 $hostess_name= array();循环内。移到上面
编辑:
一些提示:
foreach($hostess_id as $val) {
$hostess_id_selected[] = $val;
// this is pointless, i mean - you are recreating $hostess_id
btw,只是一个改进的小技巧 - 您可以使用单个查询,而不是运行许多 SQL 查询:
$sql = "SELECT GROUP_CONTACT(`nome_hostess` SEPARATOR '-') AS name_list
FROM `hostess`
WHERE id IN (".implode(',',$hostess_id).")";
如果 $hostess_id 中的项目不一定是数字:
$sql_ids = array();
foreach($hostess_id as $id)
$sql_ids[] = mysql_real_escape_string($id);
$sql = "SELECT GROUP_CONTACT(`nome_hostess` SEPARATOR '-') AS name_list
FROM `hostess`
WHERE id IN (".implode(',',$sql_ids).")";
之后:
sql 查询返回 1 行,其中有一列名为“name_list”,其中包含用“-”连接的名称。
如果你想保持 id 和 name 的顺序 - 你应该这样做:
$sql = "SELECT
GROUP_CONTACT(`nome_hostess` SEPARATOR '-') AS name_list,
GROUP_CONTACT(`id` SEPARATOR '-') AS id_list
FROM `hostess`
WHERE id IN (".implode(',',$hostess_id).")";
implode 是 php 的一个基本函数。它总是工作完美。 只需检查您的数组 $hostess_id_selected,它返回的内容。 我想这会对你有帮助。