Php 从会话数组生成逗号分隔的列表
我有一个会话数组[cart],其中包含用户id号。我试图从联系人表生成电子邮件地址列表,其中会话中的联系人id号=数据库中的联系人id 这是我的密码Php 从会话数组生成逗号分隔的列表,php,mysql,arrays,session,Php,Mysql,Arrays,Session,我有一个会话数组[cart],其中包含用户id号。我试图从联系人表生成电子邮件地址列表,其中会话中的联系人id号=数据库中的联系人id 这是我的密码 // Find cart members from the session array foreach ($_SESSION['cart'] as $key=>$val) { $contactid = $val; // Query the database for cart members $cartresult =
// Find cart members from the session array
foreach ($_SESSION['cart'] as $key=>$val) {
$contactid = $val;
// Query the database for cart members
$cartresult = mysql_query("SELECT contact.email FROM contact WHERE contact.contact_id = '$contactid'");
$emailresult = mysql_query($emailquery) or DIE (mysql_error());
while ($r = mysql_fetch_array($emailresult)) {
$emailAry[] = $r['email'];
}
}
// Create comma separated list from email array
if (count($emailAry)) {
$list = implode(", ", $emailAry);
$list = str_replace(" ,", "", $list);
显然$emailAry没有价值,因为if语句被忽略了
知道为什么会这样吗?在外部作用域中声明
$emailAry
数组,这样您就可以从while和foreach之外的代码中访问它,就像他的:
$emailAry = array();
foreach ($_SESSION['cart'] as $key=>$val) {
...
...
从我的角度来看,
$emailquery
未定义
$emailAry = array();
// Find cart members from the session array
foreach ($_SESSION['cart'] as $key=>$val) {
$cartresult = mysql_query("SELECT email FROM contact WHERE contact_id = '$val'");
while ($r = mysql_fetch_array($cartresult)) {
$emailAry[] = $r['email'];
}
}
// Create comma separated list from email array
if (count($emailAry)) {
$list = implode(",", $emailAry);
// no need to replace ', ' with '', implode will do all the job creating a CSV :)
//$list = str_replace(" ,", "", $list);
}
用这个,它既简单又快捷
$to = '';
foreach ($result->result() as $row){
$to .= $row->id.',';
}
$to = rtrim($to,',');
根据您的更改。什么是
打印($\u会话['cart'])
输出?数组正确地位于会话中。兹拉坦发现了问题所在。不过谢谢。:)如果这是你的解决方案,请检查我的答案是否被接受:)单击我的awswer计数下方的灰色箭头形状:)我做到了。我也回顾了我以前的问题,并接受了其他答案,现在我知道如何。。。现在我有足够的声望来支持你的回答。谢谢:)