Неустранимая ошибка: оператор не поддерживается для строковой ошибки в PHP-массиве in for loop

У меня есть этот код PHP:

for($i=1; $i<=$_POST["counter"]; $i++) { if($_POST["checkbox$i"]) { //select the billing_pdf row $sql="SELECT * from billing_pdf_archive where sequence = '".$_POST["checkbox$i"]."' "; $rs=mysql_query($sql,$conn); while($result=mysql_fetch_array($rs)) { //now select all contacts for the company who receive all accounts emails $sql2="SELECT * from contacts where company_sequence = '".$result["customer_sequence"]."' and receive_accountsemails = 'yes' "; $rs2=mysql_query($sql2,$conn) or die(mysql_error()); if(mysql_num_rows($rs2) > 0) { while($contacts2=mysql_fetch_array($rs2)) { //generate the list of emails address in an array $emails_list[] = $contacts2["email"]; } $emails_list = implode(',',$emails_list); } } $ins_sql2="INSERT into email_attachments (email_seq, attachment) values ('".$email_sequence."', '".$result["pdf"]."') "; $ins_rs2=mysql_query($ins_sql2,$conn) or die(mysql_error()); $up_sql="UPDATE emails set emailto = '".$emails_list."' where sequence = '".$email_sequence."' "; $up_rs=mysql_query($up_sql,$conn); } } 

но я получаю эту ошибку:

Неустранимая ошибка: оператор [] не поддерживается для строк в

на строке, которая гласит:

 $emails_list[] = $contacts2["email"]; 

Я использую один и тот же код массива на других страницах (без цикла for), и они отлично работают

Что я делаю не так?

вы заполняете массив $emails_list[] во втором, а с помощью $contacts2["email"] . в следующей строке вы введете массив в строку.

для следующего результата (first while loop) $emails_list – это строка. теперь вы не можете преобразовать строку в массив

попробуй это:

  $emailsListData = array(); while($contacts2=mysql_fetch_array($rs2)) { //generate the list of emails address in an array $emailsListData[] = $contacts2["email"]; } $emails_list = implode(',',$emailsListData); в  $emailsListData = array(); while($contacts2=mysql_fetch_array($rs2)) { //generate the list of emails address in an array $emailsListData[] = $contacts2["email"]; } $emails_list = implode(',',$emailsListData); 

Вы уже использовали $ emails_list как строку, где на вашей странице, например $ emails_list = 7;

и снова используя его как

$ emails_list [] = array (1,2,4);