2013-03-04 27 views
0

我有一個腳本選自網絡模型的XML源提取數據,然後輸入結果存入MySQL數據庫,這部分我已經工作得很好......PHP循環,雖然MySQL和更新現有值

我有一個「狀態」字段,顯示模型是聯機還是脫機,XML Feed只包含實際在線的模型,因此我將查詢設置爲REPLACE INTO,並最終建立它們的數據庫...

問題是狀態字段總是包含值「online」,所以我試圖運行一個查詢,該查詢將循環所有行,並在運行主查詢之前將狀態值更改爲「脫機」,以解析當前XML饋送數據...

使用:產生

$query = "SELECT status FROM models"; 
$result = mysql_query($query) or die('Query failed: ' . mysql_error() . "\nQuery: $query"); 

while($row = mysql_fetch_array($result)) { 
mysql_query ("UPDATE models SET '$row[1]'=offline WHERE '$row[1]'"); 
} 

沒有錯誤,但沒有得到更新,要麼... $行[1]爲 「狀態」 欄...

我也使用mysql_num_rows嘗試使用for循環查詢沒有太大的成功,除了能夠在每行中回顯「狀態」的內容,但無法達到所需的結果,無論是用「脫機」替換它們全部,還是全部替換掉​​。 。

感謝您給予的任何幫助傢伙。

+1

[**請不要用'mysql_ *在新代碼'功能**](HTTP://位。 LY/phpmsql)。他們不再被維護[並被正式棄用](https://wiki.php.net/rfc/mysql_deprecation)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果你選擇PDO,[這裏是一個很好的教程](http://j.mp/PoWehJ)。 – 2013-03-04 19:34:53

+0

感謝您的領導和鏈接...雖然我仍然無法完全掌握「舊」技術大聲笑 – user2109722 2013-03-04 20:02:56

回答

0

我想你想要做這樣的事情:

$query = "SELECT status FROM models"; 
$result = mysql_query($query) or die('Query failed: ' . mysql_error() . "\nQuery: $query"); 
mysql_query ("UPDATE models SET status='offline' WHERE status='online'"); 

PS:這就是方式,您都應該代碼看起來像..... AP,並且不使用MySQL擴展;去庫MySQLi或PDO來代替,而紅色框和布拉布拉XD

Saludos;)

+0

而且,爲了防止混淆,您*不*必須在循環中運行此查詢。這個查詢將'切換'數據庫中所有記錄的狀態 – thaJeztah 2013-03-04 19:48:48

+0

正在編輯....那就是真的...... XD – Hackerman 2013-03-04 19:49:28

+0

這是因爲$ result已經在每一行中包含「status」的每個值了嗎?這是我一直混在一起的地方... – user2109722 2013-03-04 20:07:18