2015-02-10 2 views
0

Не на 100%, что мой вопрос должен быть на самом деле, пожалуйста, не будьте суровы на меня, если моя неопытность говорит Super Noob, но у меня есть эта функция класса, которая частично работает, и я не могу похоже, придумали ответ, который Noob во мне говорит, что манекен после того, как вы вернули значение, которое оно не было, никогда не будет использовано. с тем, что здесь сказано, это функция и код, который реагирует на нее, и мои вопросы могут ли значение быть сохранено и использоваться после возвращения? И irregaurdless может кто-то помочь мне заставить это работать, он извлекает объявления и отображает их, но никак не пробовал записывать показы. Пожалуйста, проигнорируйте мои опечатки, только что получил зрение, и это не идеально. Функция: функция getRandomTextAds() {делает значение сохранения класса после его возврата

$sql = "SELECT 
       ad_id, 
       ad_client_id, 
       ad_title, 
       ad_url, 
       ad_body, 
       ad_link 
      FROM 
       text_ads 
      WHERE 
       status=1 
       AND deleted=0 
      ORDER BY 
       rand() 
      LIMIT 0, 5"; 

      $getBusyOn = $this->dbh->prepare($sql); 

      $getBusyOn->execute(); 

      $OKresult = $getBusyOn->fetchAll(PDO::FETCH_ASSOC); 

    $resultIsarray = array(); 

    return $OKresult; 

    $initialize = $this->dbh->prepare("SELECT * FROM text_ads_activity WHERE ad_id = ?AND ad_client_id = ?"); 
$initialize->bindValue(1, $ad_id); 
$initialize->bindValue(2, $ad_client_id); 
$initialize->execute(); 

if($initialize->fetchAll(PDO::FETCH_ASSOC) == 0) { 

$sql = "INSERT INTO text_ads_activity (
        ad_id, 
        ad_view_cnt, 
        ad_activity_month, 
        ad_activity_year 
       ) values (
        ?, 
        1, 
        ?, 
        ? 
       )"; 

      $isCommand = $this->dbh->prepare($sql); 
      $isCommand->bindValue(1, $ad_id); 
      $isCommand->bindValue(2, date("m")); 
     $isCommand->bindValue(3, date("Y")); 

      $isCommand->execute(); 

      } else { 

$sql = "UPDATE text_ads_activity SET 
       ad_view_cnt = ad_view_cnt+1, 
       ad_activity_month = ?, 
       ad_activity_year = ? 
      WHERE 
       ad_id = ? 
       AND ad_client_id = ? 
       AND ad_activity_month = ? 
       AND ad_activity_year = ?"; 

     $doOrElse = $this->dbh->prepare($sql); 
     $doOrElse->bindValue(1, date("m")); 
     $doOrElse->bindValue(2, date("Y")); 
     $doOrElse->bindValue(3, $ad_id); 
     $doOrElse->bindValue(4, $ad_client_id); 
     $doOrElse->bindValue(5, date("m")); 
     $doOrElse->bindValue(6, date("Y")); 

      $doOrElse->execute(); 
      } 
     } 

А теперь часть кода взаимодействует с

$resultIsarray = $siteSys->getRandomTextAds(); 
    $text_ad_count = count($resultIsarray); 


    foreach ($resultIsarray as $OKresult) { 
    $ad_link = isset($OKresult['ad_link']) ? $OKresult['ad_link'] : ''; 
    $ad_title = isset($OKresult['ad_title']) ? $OKresult['ad_title'] : ''; 
    $ad_body = isset($OKresult['ad_body']) ? $OKresult['ad_body'] : ''; 
    $ad_url = isset($OKresult['ad_url']) ? $OKresult['ad_url'] : ''; 
    $ad_client_id = isset($OKresult['ad_client_id']) ? $OKresult['ad_client_id'] : ''; 
    $ad_id = isset($OKresult['ad_id']) ? $OKresult['ad_id'] : ''; 

        <li align="center"><div id="text-ad-table"> 
        <span class="heading"><a href="<?php echo $ad_link; ?>" target="_blank"><?php echo $ad_title; ?></a></span> 
        <span class="col1"><?php echo $ad_body; ?></span> 
        <span class="full-url"><?php echo $ad_url; ?></span> 
        </div></li><!-- eof #table --> 

        } 

Я надеюсь, что я сделал, как требуется, спасибо заранее .....

ответ

0

return влияет не на значение, а на код. когда вы вернетесь, в этой функции не будет больше строк. Возврат не просто возвращает результат, он передает его и возвращается с ним.

Вы можете либо обновить показы перед возвратом (замедляет время отклика страницы), либо записать содержимое страницы, очистить вывод и записать показ после отправки ответа на его пути, либо вы можете сохранить информации и система берет на себя заботу о записи впечатлений в фоновом режиме, например, о очереди заданий или выделенного потока или чего-то еще.

+0

Я понял, что что-то вроде этого, TYVM! Но как сделать фоновый процесс? LOL на новой охоте сейчас. – EeyoreDev

Смежные вопросы