2014-02-23 1 views
0

나는 거대한 배열을 기반으로 파일에서 값을 검색하고 바꾸기 위해 foreach 루프를 작성하고 있습니다. foreach 루프는 디렉토리/서브 디렉토리/파일을 구문 분석하고 검색합니다. 이것은 아마도 약 10 분 정도 걸릴 것입니다 ... 그리고 나는 궁금 해서요 PHP, AJAX 어쩌면 내가 그걸 보여줄 페이지에 갈 때 (예를 들어) :foreach 루프 (PHP에서) 후 페이지로 함수 보고서 다시

X 값이 남아 있습니다.

이 숫자는 foreach가 완료 될 때마다 줄어 듭니다.

그래서 기본적으로 내가 가지고

foreach ($array as $key => $value) { 
    $contents = file_get_contents($file); 
    foreach (new RecursiveIteratorIterator($di) as $filename => $file) { 
    {do stuff here} 
    } 
$param--; // to report back to the page 
} 
+0

이 게시물에 대한 질문하기 – sergio

+0

죄송합니다. 코드를 만들 때 지워졌습니다. 죄송합니다. 지금 수정하십시오. 편집 : 여기에 내가 그것을 강조했다 – user1033882

답변

0

당신이 정말로 그것을 할 방법을 따라 달라집니다. 당신은 데이터베이스에 그것을 저장할 수 있고 단순히 페이지의 섹션에 당신이있는 번호를 보여줄 수 있습니다. foreach의 번호를 변경하려면 검색어를 추가해야합니다.

<?php 
$now = date("Y-m-d"); 
$getnum = $db->query("SELECT Num FROM mytable WHERE Jobtime = '$now'"); 
$result = $getnum->fetch(); 
$whatyouwant = $result['Num']; 

if($whatyouwant > 0) { ?> 

<p class="whatyouwant" id="whatyouwant"> <?php echo $whatyouwant;?> </p> 

<?php } ?> 

을 그리고처럼 foreach 할 수있는 뭔가 변경 : 그래서 당신은 이런 식으로 할 말을

foreach ($array as $key => $value) { 
    $contents = file_get_contents($file); 
    foreach (new RecursiveIteratorIterator($di) as $filename => $file) { 
    {do stuff here} 
    } 
$updatestuff = $db->query("UPDATE mytable SET Num = '$param' WHERE Jobtime = '$now'"); 
} 

이의 단점은 당신이 정보를 얻을 수있는 페이지를 다시로드해야입니다. 이를 피하기 위해, AJAX에서 제 대답의 첫 부분을 실행할 수 있습니다. 그래서 당신은 할 것 :

var reloadFunction = function() { 
    $.get("getnum.php", function (result) { 
     $('#holdingwhatyouwant').html(result); 
    }); 
}; 
$(document).ready(function() { 
    reloadFunction(); 
    setInterval(reloadFunction, 10000); 
    }); 

당신이, 당신은 같은 페이지에 대한 장소를 표시해야하는 경우 :

<div id="holdingwhatyouwant"></div>

이유는 무엇입니까? 제한으로 인해. 첫 번째 방법을 사용하여 해당 코드를 페이지에 넣으면 페이지를 다시로드하여 업데이트를 확인해야합니다. 당신이 아약스만을 사용한다면 (내가 쓴 것과 비슷하다.), 페이지를 열어두기 만하면된다. 핸들러를 가지고 있어야한다. (아약스는 진행 상황을 알기 위해서 PHP로 데이터를 보낼 필요가있다. 아약스가 당신을 방아쇠를 당겨야합니다.) 그것들을 결합하여 사용하면 좋습니다. 페이지를 새로 고침하면 즉시 정보를 얻을 수 있습니다. 그렇지 않으면 10 초마다 정보를 얻을 수 있습니다. 밀리 초 단위로 표시된 10000 간격을 염두에 두십시오. 당신이 PHP의 if 부분을 필요로하지 않는다는 것을 명심하십시오.

+0

글쎄 그게 무슨 일이 일어나면 컴퓨터 앞에 12시 루프 롤을하고있다. 해답을 주셔서 감사합니다 ... 저는 믿을 수 없습니다. 데이터베이스에 대해 생각하지 못했습니다. T_T – user1033882

+0

하하는 그것을 땀을 흘리지 않습니다. 사람이 발생합니다.) 나는 앉아서 몇 시간 동안 문제를 보면서 글쓰기를 시작합니다. 데이터베이스 : D –