2011-07-09 42 views
1

這段代碼所做的是從數據庫中取的聯繫,並把它比作一個關鍵字,如果它比較然後KeywordCounter++,並在LinkCounter++如何顯示鏈接計數器更改現場?

我要鍵入LinkCounter每次經過每一個環節它經歷,但在我的代碼寫它只會在循環結束後顯示我(在所有鏈接交叉之後)。每次檢查鏈接時我怎樣才能看到LinkCounter

我怎樣才能看到櫃檯跳轉的現場?

<?php //holdes the db connection include('Connect.php'); 
$KeyWord = 'googoo'; 
$LinkCounter = "0"; 
$KeywordCounter = "0"; 

$query = mysql_query("SELECT * FROM doalgo where Pass != '0'") or die(mysql_error()); 

while ($info = mysql_fetch_array($query)) { 

    $id = $info['id']; 
    $link = $info['link']; 

    $num_rows = mysql_num_rows($query); 

    mysql_query("UPDATE doalgo SET Pass = '1' WHERE id = '$id'"); 

    $CurrentFile = file_get_contents($link); 

    if (!strpos($CurrentFile, $KeyWord)) { 
     //nothing 
    } else { 
     mysql_query("UPDATE doalgo SET Posted = '1' WHERE id = '$id'"); 
     $KeywordCounter++; 
    } 

    $LinkCounter++; 

    if ($id == $num_rows) { 
     die(); 
    } 
} 
echo "<br />KeywordCounter: ".$KeywordCounter; 
echo "<br />LinkCounter: ".$LinkCounter; 
? > 
+0

只是一個小提示:你可以包含沒有括號的地方,比如echo,如果你使用「require」,它通常會更好,因爲如果文件不存在,它會退出你的腳本。 –

回答

0

如果我正確理解你的問題,你想要的網頁,立即顯示,然後不斷更新LinkCounter顯示器作爲SQL查詢的進展如何?

如果這是一個正確的理解,要做到這一點需要AJAX。每次更新$ LinkCounter時,您的服務器必須不斷更新Web瀏覽器,然後瀏覽器中運行的JavaScript將使用該信息更新顯示。顯然,這是一個比你的腳本目前做得更復雜的事情。這是完全不同的設計模式。

如果這確實是您想要學習的東西,那麼有很多關於AJAX主題的書籍,或者谷歌也可以幫助您。

+0

是的,我知道ajax,我可以結合jQuery的Ajax與它,但... 如果它每秒更新,我有一種感覺,瀏覽器會崩潰 –

+0

你想要的東西就是AJAX與[流連接](HTTP ://ajaxpatterns.org/HTTP_Streaming)。雖然即使使用標準AJAX請求,每秒一次也不會使任何現代瀏覽器崩潰 - 儘管它會浪費很多帶寬。 – Flimzy

0

它更好地計算更新的平均速度(例如每小時更新的次數)並每隔1小時向瀏覽器發送一個整數。
使用jquery,你可以改變顯示給用戶的速度。