2017-09-27 149 views
1

我想将mysql查询的结果传递给将我们的数据库电子邮件交给Mailchimp的变量!不过,我不知道如何将mysql结果传递给变量!PHP将mysql结果传递给变量

更精确的查询是:

$sql = "SELECT email, DATE_FORMAT(users.reg, '%Y-%m-%d') FROM users 
WHERE DATE(reg) = CURDATE()"; 
$result = $conn->query($sql); 

if ($result->num_rows > 0) 
{ 
    while($row = $result->fetch_assoc()) 
    { 
     echo " " . $row["email"]. "<br>"; 
    } 
} else { 
    echo "0 results"; 
} 


$data = [ 
    'email'  => $row["email"], 
    'status' => 'subscribed' 
]; 

syncMailchimp($data); 

我如何查询的结果传递给$data电子邮件?

+0

通过你去'$数据的时间= ...','$ row'将是'假' – Phil

+0

你不得不在循环中做它,因为$循环的值每次循环迭代时都会改变。你现在正在做的事情没有逻辑意义,因为你对$ row的使用完全超出了它的预期背景。 – ADyson

回答

1

尝试是这样的:

<?php 

$sql = "SELECT email, DATE_FORMAT(users.reg, '%Y-%m-%d') FROM users 
WHERE DATE(reg) = CURDATE()"; 
$result = $conn->query($sql); 

$data = []; 
if ($result->num_rows > 0) 
{ 
    while($row = $result->fetch_assoc()) 
    { 
     $data = [ 
      'email'  => $row["email"], 
      'status' => 'subscribed' 
     ]; 
     syncMailchimp($data); 
    } 

} 
else 
{ 
    echo "0 results"; 
} 

它会发送所有email在循环过程中给mailchimp。 1加1

或者你可以使用一个单独的循环,将其添加在syncMailchimp

<?php 

$sql = "SELECT email, DATE_FORMAT(users.reg, '%Y-%m-%d') FROM users 
WHERE DATE(reg) = CURDATE()"; 
$result = $conn->query($sql); 

$emails = []; 
if ($result->num_rows > 0) 
{ 
    while($row = $result->fetch_assoc()) 
    { 
     $emails[] = [ 
      'email'  => $row["email"], 
      'status' => 'subscribed' 
     ]; 
    } 

} 
else 
{ 
    echo "0 results"; 
} 


foreach($emails as $email){ 
    syncMailchimp($email); 
} 
+1

谢谢,它工作! –

+1

谢谢,它工作! –

0

在你的循环结果设置在阵列中的数据是这样的:

$data = []; 

while($row = $result->fetch_assoc()) 
{ 
$data[] = [ 
'email'  => $row["email"], 
'status' => 'subscribed' 
]; 

} 

syncMailchimp($data);