Lynx Posted October 13, 2005 Report Posted October 13, 2005 Problēma sekojoša: šādā te kverijā 'UPDATE db SET lauks=lauks+'.$float_tipa_skaitlis.' WHERE ... '; tiek mests errors, lai pārbaudot sintaksi. Labi zināms, ka, ja pieskaitam veselus skaitļus laukam viss strādā. Ir kāds veids kā šo problēmu viltīgi ar pašu mysql apiet, vai arī patiešām būs jaiet garš ceļš un jāapreiķina ar php un tad jainserto?
Paulinjsh Posted October 13, 2005 Report Posted October 13, 2005 Kādu eroru met? Ieraksti visu query.
Lynx Posted October 13, 2005 Author Report Posted October 13, 2005 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '5 WHERE id = "1"' at line 1 Izskatās, ka pat noteicu kur varētu būt problēma, bet dīvaini ka tā notiek. Skaitli kuru būtu japieskaita datubāzes laukam mēs iegūstam float skaitli ar punktu pa vidu "0.5" reizinot ar citu nepāra skaitli piemēram 7iņi un galā iegūstam "3,5" - skaitli ar komatu pa vidu un tas nevēlas tikt sasumēts mysql kverijā. Un tagad jautājums kā lai es pārvēršu skaitli ar pa vidu punktu, nevis komatu? Meiģināju likt priekšā mainīgajam tipu (float), tapat reizināt un dalīit, etc, bez panākumiem.
bubu Posted October 13, 2005 Report Posted October 13, 2005 (edited) Tev prasīja ielikt pilnu kverija tekstu, bet neieliki, eh.. bet nu labi vismaz, ka pats saprati, kur vaina. A par komatiem-punktiem: str_replace(',', '.', float_skaitlis) neder? Tev MySQL stāv uz cita datora, nekā php? Edited October 13, 2005 by bubu
Lynx Posted October 13, 2005 Author Report Posted October 13, 2005 Njaa tik agresīvām metodēm kā str_replace vēl neķēros klāt :) Šeit būs kverijs: $db->query('UPDATE ships SET cargo=cargo+'.$weight_total.' WHERE id = "'.$ship['id'].'" '); Php un mysql stāv uz viena un tā paša datora.
bubu Posted October 13, 2005 Report Posted October 13, 2005 Tu nesaprati. Ne jau php kods, kas izpilda kveriju, bet pats kverijs! echo 'UPDATE ships SET cargo=cargo+'.$weight_total.' WHERE id = "'.$ship['id'].'" '; Šito gribēju redzēt. Tad jau uzreiz būtu redzams, kur vaina.
Lynx Posted October 13, 2005 Author Report Posted October 13, 2005 Nu jā tā arī ir, nepatīk viņam komats: UPDATE ships SET cargo=cargo+12,5 WHERE id = "1"
Lynx Posted October 13, 2005 Author Report Posted October 13, 2005 Nekas nemainās, netiek mests erros un vērtība netiek mainīta.
Delfins Posted October 14, 2005 Report Posted October 14, 2005 mysql atdalītājs ir `punkts`. repleiso floatu.
Lynx Posted October 14, 2005 Author Report Posted October 14, 2005 Hmm vispār ir iespējams kautkā php konfigurācijā to mainīt, lai reizināšanas rezultāts tiktu izvadīts ar punktu? Jo papētiju uz citiem serveriem, kur strādāju - reizināšanas rezultāts ir ar punktu un nekādas problēmas. Pārejot cauri konfigurācijas failam šādu vietu neatradu, bet nu kautkā uz citiem serveriem tas darbojas.
Delfins Posted October 14, 2005 Report Posted October 14, 2005 Reģionālie settingi... es tā domāju vismaz (tur kur PHP stāv) no klienta - anyway ir jāformatē obligāti cipari
Recommended Posts