2017-09-27 6 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'は'になりますfalse' – Phil

+0

ループ内で行う必要があります。ループが繰り返すたびに$ rowの値が変わるからです。あなたが今やっていることは、$ rowの使用が意図された文脈から完全に外れているので、理にかなっていません。 – ADyson

答えて

1

このような何か試してみてください:それはすべてのemailを送信します

<?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"; 
} 

をループ中に郵送しています。 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); 
関連する問題