2017-09-27 182 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);