2014-02-08 70 views
-3
// WHEN A TOURNAMENT GETS SUBMITTED TO DATABASE MAKE SURE THE ID IS GRABBED AFTER IT HAS BEEN SUBMITTED 
// $Tournamentid = mysqli_insert_id() or $Tournamentid = mysqli_insert_id(); 
// SET DATA FOR THE PRIVATE MESSAGE TO FOLLOWERS 
$defaultP = "x"; 
$from = $n; // maybe $log_username instead of id 
$subject = "New Tournament"; //this can be changed 
$message = 'hey, I Just made a New Tournament. <a href="http://localhost/esports/tournament.php?n='.$url_name.'">Click here</a> to view the page. Do not reply to this message as we will not recieve it.'; /// this can be changed can add link to tournament 

// GRAB FOLLOWERS LIST FOR THIS PROVIDER 
$followArray = mysqli_query ($db_conx, "SELECT followers FROM provider WHERE name='$n'"); 
while ($followrow = mysqli_fetch_array($followArray)){ 
     $follower_array = $followrow["followers"]; 
} 

// IF THEY HAVE FOLLOWERS 
if ($follower_array != "") { 
    $follower_array2 = explode(",", $follower_array); 

    // CREATE A LOOP THAT WILL FIRE OFF A PM TO EACH FOLLOWER 
    // INSERT PRIVATE MESSAGES FOR EACH SUBSCRIBER INTO PN TABLE USING $VALUE TO ADD THEIR ID 
    $sqli = "INSERT INTO pm (receiver, sender, senttime, subject, message, parent) 
      VALUES('$value', '$from', NOW(), '$subject', '$message', '$defaultP')"; 
} 

這是一個有點自動PM系統,所以當有人創建一個錦標賽時,所有的追隨者都會通過鏈接發送一條關於它的消息。分解陣列正在跳過值

我遇到的問題是,它只發送一個用戶一個下午的事實,這是創建該事件的人的最後一個跟隨者。我知道這一點,因爲我有3個人關注這個1帳戶,並且只有1條消息在pm系統中創建。我需要它發送它需要發送的消息數量,而不管數量如何。

目前這僅發送下午1點了,這是最後的人誰是所謂的['followers']所以我堅信我的代碼錯誤的數據庫行的陣列中,在這裏foreach ($follower_array2 as $key => $value) {,因爲它是不正確但是設定值我可能是錯的,可能是錯的,但如果有人能幫助我,我會非常感激。

謝謝

+0

標記代碼。 –

回答

2

而不是使用一個while聲明,我相信foreach會更好地工作,在這種情況下。它應該看起來像這樣:

//////////WHEN A TOURNAMENT GETS SUBMITTED TO DATABASE MAKE SURE THE ID IS GRABBED AFTER IT HAS BEEN SUBMITTED 
      //////// $Tournamentid = mysqli_insert_id() or $Tournamentid = mysqli_insert_id(); 
      ///////////// SET DATA FOR THE PRIVATE MESSAGE TO FOLLOWERS 
      $defaultP = "x"; 
      $from = $n; //// maybe $log_username instead of id 
      $subject = "New Tournament"; //this can be changed 
      $message = 'hey, I Just made a New Tournament. <a href="http://localhost/esports/tournament.php?n='.$url_name.'">Click here</a> to view the page. Do not reply to this message as we will not recieve it.'; /// this can be changed can add link to tournament 
      ///////////////////GRAB FOLLOWERS LIST FOR THIS PROVIDER 
      $followArray = mysqli_query ($db_conx, "SELECT followers FROM provider WHERE name='$n'"); 
      ////////IF THEY HAVE FOLLOWERS 
      if ($follower_array != ""){ 
      $follower_array2 = explode(",", $follower_array); 
      //////// CREATE A LOOP THAT WILL FIRE OFF A PM TO EACH FOLLOWER 
      foreach ($follow_array2 as $follow){ 
      ////////////////INSERT PRIVATE MESSAGES FOR EACH SUBSCRIBER INTO PN TABLE USING $VALUE TO ADD THEIR ID 
      $sqli = "INSERT INTO pm (receiver, sender, senttime, subject, message, parent) 
      VALUES('$follow', '$from', NOW(), '$subject', '$message', '$defaultP')"; } } 

這樣,對於每個追隨者這個人,它會向他們發送一條消息。

+0

我的代碼被編輯。我包含一個'foreach',目前發佈的代碼已經被JCOC611編輯,並且已經取出了所有東西,所以它現在不是原創的。他爲什麼要這樣做。無論如何,你的代碼看起來不同於我的原始代碼,所以我會給那個前面的謝謝。 –

+0

您提供的代碼沒有發送單個PM,但是我已經解決了該問題。這是因爲我的底部'$ query = mysqli_query($ db_conx,$ sqli)或die(mysqli_error($ db_conx));'不在裏面},因爲它沒有被運行。不管怎樣,謝謝你 –