2017-07-06 9 views
1

私は複数の配列をdbテーブルから受け取りました。今私は、はい、その後、アレイに保存された自分の連絡先の電話番号は、ここで誕生日特定のインデックス値を取得し、複数のPHP配列から配列に格納する方法

を呼び出した場合、「自分の誕生日です==現在の日付を」チェックしようとしている私の試みは、ここで

$curr_date = date('m/d'); 

$birthday = array(); // array initialization 
$anniversary = array(); // array initialization 

$con=mysqli_connect("localhost","root","","birthdays"); 


$sql="SELECT * FROM users"; 

$result=mysqli_query($con,$sql); 

$row=mysqli_fetch_assoc($result); 

echo "<pre>"; 

if ($result=mysqli_query($con,$sql)) 
{ 
    while ($row=mysqli_fetch_assoc($result)) 
    { 
     print_r ($row); 
    } 
} 

です期待の記述により、現在のコードのイメージがある

enter image description here

私はTRYIよ多くの時間を費やしても、正確な結果を得ることはできません。親切に私を導く。ありがとう

+0

結果['birth_date'] –

+0

あなたは生年月日と現在の日付を比較していますか? –

+0

OK、そのgenratesの日付。今、どのように私は現在の日付からそれらを確認することができますか? –

答えて

0

私はあなたのようなものが必要だと思いますか?

$date1 = date('m-d', strtotime($row['birth_date'])); 
$date2 = date('m-d'); 

if ($date1 == $date2) { 
    echo 'Happy birthday!'; 
} 

は、詳細はPHP date functionを参照してください。

0

は明らかにあなたは、データベースからの結果を得たので、あなたは、アレイ内のすべての結果を引っ張る:

$sql = "SELECT * FROM xyztable"; 
$result = $con->query($sql); 
$users = array(); 
while($row = $result->fetch_assoc()) { 
    $users[] = $row; 
} 

だから今、私たちは同じポイントです。 は今、あなたはループは、配列トラフ誕生日配列を作成行うことができますし、誕生日を爆発する必要があります

$birthdays = array(); 
for($users as $user) { 
    $birth = explode("/", $user['birth_date']); 

    $new_birth = "$birth[0]/$birth[1]"; 
    $actual_date = date("m/d"); 
    if($new_birth == $actual_date) { 
    $birthdays[] = $user['customer_mobile']; 
    } 
} 

それをする必要があること。

+0

これで実現できません! –

+0

通知:未定義オフセット:1 –

0

これがデータベースからデータを取得する唯一の目的であれば、これらの行を別の配列にプッシュする必要はありません。連絡先番号を配列にプッシュするだけです。それを2回ループする必要はありません。

$curr_date = date('m/d'); 

    $birthday = array(); // array initialization 
    $anniversary = array(); // array initialization 

    $con=mysqli_connect("localhost","root","","birthdays"); 


    $sql="SELECT * FROM users"; 

    $result=mysqli_query($con,$sql); 

    $row=mysqli_fetch_assoc($result); 

    if ($result=mysqli_query($con,$sql)) { 
     while ($row=mysqli_fetch_assoc($result)) { 
      if (date('m/d',strtotime($row['birth_date'])) == $curr_date) 
       $birthday[] = $row['customer_mobile']; 
     } 
    } 
+0

注意:未定義の変数:birthday –

+0

私はprint_r($ birthday)コードを鳴らしたとき、$ birthdayは未定義です。 –

+0

連絡先番号を初期化した '$ birthdays'配列にプッシュしたい場合は、配列を' $ birthdays'に変更しますが、その配列を他の目的のために持っていれば '$ birthday = array()他の2つの配列を初期化しています。連絡先番号を初期化した '$ birthdays'配列にプッシュする答えを更新しました。 – Ravi

関連する問題