2011-07-24 123 views
1

私はこの1つを作るが、私はこのスクリプトを実行すると、それはあまりにも多くの時間といくつかの時間がかかることはありませんが実行されますmysqlデータベースで83000語を持っています。私はこのスクリプトがmysqlデータベースwatherのすべてのタイトルと$ row ['full_story']で一致するかどうかを判断します。だから私はこのプロセスをより速くすることができる方法があれば、これはopreationを使用不可能にします?または使用されているタイトルに一致します$ row ['full_story']コードが翻訳者phpとmysql

$user_name = "root"; 
    $password = ""; 
    $database = "salar"; 
    $server = "127.0.0.1"; 
$db_handle = mysql_connect($server, $user_name, $password); 
$db_found = mysql_select_db($database, $db_handle); 
if ($db_found) { 
$SQL = "SET NAMES 'utf8'"; 
    mysql_query($SQL); 
$SQL = "SELECT * FROM dle_mylinks ORDER BY LENGTH(title) DESC"; 
$result = mysql_query($SQL); 
while ($db_field = mysql_fetch_assoc($result)) { 
$row['full_story'] = str_replace ($db_field['title'],"<a href=\"?newsid=" . $db_field['id'] . "\">" . $db_field['title'] . "</a>" ,$row['full_story']); 
$row['short_story'] = str_replace ($db_field['title'],"<a href=\"?newsid=" . $db_field['id'] . "\">" . $db_field['title'] . "</a>" ,$row['short_story']); 
} 
$mydata =$row['short_story'] . $row['full_story']; 


mysql_close($db_handle); 

} 
else { 
print "Database NOT Found "; 
mysql_close($db_handle); 
} 
+0

を作成していませんか?助けてください – user860553

答えて

3

ループ内でテーブルの各行を繰り返し処理します。

例:

$query = mysql_query("SELECT * FROM `table`"); 

while($row = mysql_fetch_object($query)){ 
    $mydata = str_replace($row->word,$row->meaning,$mydata); 
} 
+0

私はそれに私の5時間を費やしたが、あなたが親切に上記のコードを修正する場合は無駄にすべて、PHPのMYSqlの初心者にしてください – user860553

1

は、あなたが「thistance」あたり「距離」を交換したいと、それの後に、「DIS」で「この」を置き換える場合、あなたがそれだ(再び「距離」を取得し、str_replaceには注意してください単語ゲーム、問題の近似)

preg_replaceを使用してください。

誰二つの配列(ZendのフレームワークfetchColやお気に入りのLIB)

$aWords = $zfDb->fetchCol('select words from table'); 

$aMeans = $zfDb->fetchCol('select means from table'); 

そして

$mydata = preg_replace($aWords, $aMeans, $mydata);