2011-03-13 61 views
0

也許有人可以幫助這一點,因爲我要瘋了:PHP的問題有一個循環,並寫入到MySQL數據庫

$action = $_GET['action']; 
$items = rtrim($_POST['items'],","); 
$sql = mysql_query("SELECT url, pid, log_no FROM plow WHERE id IN ($items)") or die ('Error: ' . mysql_error()); 

    if ($action == 'start') { 
     while ($db_row = mysql_fetch_assoc($sql)) { 
      //random number for the log file name 
      $random = mt_rand(1,500000); 
      //log file name 
      $out_file = $init_loc.'/Logs/log'.$random; 
      // the command 
      $command = exec("($path" . " nohup plowdown --temp-directory='$init_loc' -o '$init_loc' " . "'".$db_row['url']."' 2> " . "'$out_file' > /dev/null &);" . "echo $$;", $out); 
      exec($command, $out); 
      mysql_query("UPDATE plow SET status = 'Pending...', state = 'Active', pid = '".$out[0]."', log_no = '$random' WHERE id IN ($items)") or die ('Error: ' . mysql_error()); 
     } 
    } 

基本上,給出啓動命令時,我希望能夠執行對每從$ db_row的值到那裏的動作,爲日誌生成一個隨機數並將它們中的每一個存儲在它們在MySql DB中的相應位置。

現在它爲$ db_row的每個值存儲相同的$ random和$ pid編號。

謝謝, 克里斯蒂安。

回答

1

當您要更新使用條款的所有項目,最後一個將全部更新您的最後一個隨機數,

' ... where id='.$row['id']

在UPDATE子句將僅在更新單行時間

(很明顯,你必須添加ID到您的SELECT聲明以及)

+0

ķ。在過去的2個小時裏,我一直在這樣做,我甚至懶得去那裏看,因爲我知道我正確地寫了這些代碼......無論如何......記住了......謝謝。 – Splash 2011-03-13 15:36:44