2017-10-13 33 views
0

我有一個簡單的HTML DOM腳本,簡單的HTML DOM刮價格,並保存到MySQL表

有了這個腳本,我從4個URLS提取價格,並投入到MySQL表。

一切ok,但問題是當時的價格是例如:14,70€,在我的表,我只得到14.00,在通常我必須接受我的MySQL表14.70

我的MySQL類型行價格是DECIMAL(10,2)。

什麼可能是錯的?

如果我手動更新價格,以14.70作爲爲例,它的工作原理,它輸出了我14.70

我用這個SQL查詢:

$sql = "INSERT INTO test (name, price, price1, price2, price3) 
     VALUES('$title->plaintext', '$price->plaintext', 
       '$price1->plaintext' , '$price2->plaintext' , 
       '$price3->plaintext')"; 

編輯:納喬幫助好。 我不明白爲什麼這個查詢:

INSERT INTO productos (nombre, nombreFabricante, precio, precioComp1, precioComp2, precioComp3) VALUES('Staa', 'AOs', '38,25 € ', '34,27 € ', '14,70 € ', '21,00 € ') 

它保存在MySQL表有:

科技成果鑑定的AO 38.00 34.00 14.00 21.00

正如你所看到的,它不救我的小數我的價格。在MySQL數據庫38,25是38 ... 34,27在MySQL數據庫是34.

感謝您的任何幫助!問候

編輯2:納喬已經幫助回答這個問題吧!好工作,真的很感激!此致敬禮

+0

MySQL是過時了,使用的mysqli或PDO來代替 –

+0

是的,我知道,但目前我使用的mysqli。稍後我將改爲PDO!感謝您的建議! –

回答

0

刪除`: 您需要刪除€符號。你能做到這樣,你需要點改變逗號(,)(。),因此MySQL分辯得到編號

$price_go=str_replace(",",".",str_replace(" €","",$price->plaintext)); 
$price_go1=str_replace(",",".",str_replace(" €","",$price1->plaintext)); 
$price_go2=str_replace(",",".",str_replace(" €","",$price2->plaintext)); 
$price_go3=str_replace(",",".",str_replace(" €","",$price3->plaintext)); 

$sql = "INSERT INTO test (name, price, price1, price2, price3) 
     VALUES('$title->plaintext', $price_go, 
       $price_go1, $price_go2, 
       $price_go3)"; 
+0

這是它顯示我的錯誤,如果我按照你的建議去做:(謝謝你的嘗試 錯誤:INSERT INTO測試(名稱,價格,price1,price2,price3)VALUES(名稱,38,25€,14, 70歐元,38.25歐元,21,00歐元) 您的SQL語法錯誤;查看與您的MariaDB服務器版本相對應的手冊,以找到正確的語法,以便在'名稱,38,25€,14, 70€,38,25€,21,00'在線1 –

+0

我修改了答案 – nacho

+0

Wow Nacho !!它已成功刪除了「€」,但它仍然在代碼上有錯誤 錯誤:INSERT INTO test名稱,價格,價格1,價格2,價格3)VALUES(名稱,14,70,38,25,38,25,38,25) 您的SQL語法錯誤;請檢查與您的MariaDB服務器版本對應的手冊在附近使用正確的語法'名稱,14,70,38,25,38,25,38,25')在第2行 –

0

你爲什麼不嘗試的mysqli或PDO,但我更喜歡使用的mysqli,這很簡單,也許這可以幫助你:

$con = new mysqli("host","user","password","db"); 

$sql = "INSERT INTO test (name, price, price1, price2, price3) 
     VALUES('$title->plaintext', '$price->plaintext', 
       '$price1->plaintext' , '$price2->plaintext' , 
       '$price3->plaintext')"; 

$con->query($sql); 
+0

沒有人?? @nacho的答案是最成功的 –