Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在变量中使用逗号获取行和分隔值?_Php_Mysql - Fatal编程技术网

Php 如何在变量中使用逗号获取行和分隔值?

Php 如何在变量中使用逗号获取行和分隔值?,php,mysql,Php,Mysql,我试图获取数据库中所有电子邮件的列表,并将所有电子邮件连接到一个用逗号分隔的php变量中。这就是我使用的: $emailres=do_sqlquery("SELECT `email` FROM `users` WHERE `id` > 1",true); $qtdemails=mysql_num_rows($emailres); while($emailrows = mysql_fetch_row($emailres)) { for($i=0; $i < $qtdema

我试图获取数据库中所有电子邮件的列表,并将所有电子邮件连接到一个用逗号分隔的php变量中。这就是我使用的:

 $emailres=do_sqlquery("SELECT `email` FROM `users` WHERE `id` > 1",true);
 $qtdemails=mysql_num_rows($emailres);
 while($emailrows = mysql_fetch_row($emailres)) {
    for($i=0; $i < $qtdemails; $i++){
        $allemails .= $emailrows[$i].",";
    }
 }
这就是我需要的

1@email.com,2@email.com,3@email.com,4@email.com,5@email.com
你能帮我吗? 多谢各位


OBS:我知道它已被弃用,我真的不在乎,但如果你想帮助我以我喜欢的方式学习,否则请帮助我修复代码,然后就可以了。

在你的循环中,将所有这些电子邮件添加到一个新的空数组中(删除字符串连接代码)

然后在你的循环之外简单地做

$string=implode("," , $allEmails);
尽管您提到您不想被告知不推荐的代码,但您甚至错误地使用了不推荐的代码:p您的for循环根本不需要。您只需执行一个
fetch_assoc
,并在
循环时仅使用
即可提取这些电子邮件

编辑:因为您要求

        while($emailrows = mysql_fetch_assoc($emailres)) {
            if(!empty($emailrows['email']))
              $allEmails[]=$emailrows['email'];
        }
编辑2

正如下面评论中提到的@sgt,您的查询返回空的电子邮件地址;为什么会这样?虽然我添加了一个检查,不包括输出中的记录,但是您应该首先更新查询以不返回此类记录

SELECT `email` FROM `users` WHERE `id` > 1 AND email <>''
从'users'中选择'email',其中'id'>1和email''

有一个函数rtrim可以从变量中删除最后一个。

由于我的代码不正确,您能发布一个完全正确的代码吗?我对此一无所知。。。谢谢你,汉基웃 Panky
infrade()
还将在字符串中包含空值。在存储到数组中之前,应该检查空电子邮件。那里没有空值,如果查询返回空电子邮件值,则应该首先更新查询。这就是重点。添加检查或更新查询。:)不,不需要检查。在用户表中,电子邮件地址通常不允许为空。我们没有迹象表明OP允许它为空。因此,既不需要更新查询,也不需要添加任何检查:)与上述情况相同
        while($emailrows = mysql_fetch_assoc($emailres)) {
            if(!empty($emailrows['email']))
              $allEmails[]=$emailrows['email'];
        }
SELECT `email` FROM `users` WHERE `id` > 1 AND email <>''
$emailary = array();
while($emailrows = mysql_fetch_assoc($emailres)) {
        $emailary[] = $emailrows['email'];
     }

$email_string = implode(",",$emailary);
echo $email_string;
while($emailrows = mysql_fetch_row($emailres)) {
 if(!empty($emailrows['email'])){
     $email_list.= $emailrows['email'].",";
 }
}

$email_list = rtrim($email_list,',');