Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> (PHP) 20.99 != 20.99 (MYSQL)
zflyk
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 5.11.2007

Ostrzeżenie: (0%)
-----


Witam. Mam taki problem i nie mam pojęcia jak to zrobić. Otórz wykonuję zapytanie do bazy: SELECT cena FROM ........ WHERE cena='".$cena."' .......
Cena nie jest jedynym warunkiem, ale nie o to chodzi. Chodzi o to że w bazie znajduje się wartość np: 20.99 (typ kolumny to FLOAT(10,2)
na 100% jest tam ta wartość bo sprawdzałem. Przy wykonaniu zapytania $cena=20.99 a jednak MYSQL nie widzi podobieństwa i nie znajduje mi tej ceny. Wyświetlałem sobie tą $cena przed zapytaniem i jest poprawna. Inne wartość WHERE też są ok. Problem jest z ceną :/ POMOCY. Co zrobić żeby MYSQL porównał obie wartości poprawnie?

zapomniałem dodać że jesli w bazię będzie wartość 10.00 i taką samą chcemy porównać to ZNAJDZIE! więc
10.00 == 10.00
20.99 != 20.99 (IMG:http://forum.php.pl/style_emoticons/default/blinksmiley.gif) (IMG:http://forum.php.pl/style_emoticons/default/sciana.gif)

Ten post edytował zflyk 11.11.2007, 02:05:27
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
orson
post
Post #2





Grupa: Zarejestrowani
Postów: 548
Pomógł: 2
Dołączył: 19.07.2003

Ostrzeżenie: (0%)
-----


witam

Twoje zapytanie nadal wysyłało cenę jako tekst. Nie jest ważne jak jest zmienna w php inicjowana/jakiego jest typu. Masz:
Kod
"UPDATE gm_towary SET cena='".$cena."' WHERE id='1'"

a powinieneś mieć:
Kod
"UPDATE gm_towary SET cena=".$cena." WHERE id='1'"

czyli bez pojedynczych '

pozdrawiam
Go to the top of the page
+Quote Post
bugme
post
Post #3





Grupa: Zablokowani
Postów: 16
Pomógł: 1
Dołączył: 12.09.2006

Ostrzeżenie: (0%)
-----


Cytat(orson @ 14.11.2007, 00:32:14 ) *
Nie jest ważne jak jest zmienna w php inicjowana/jakiego jest typu.


W tym wypadku jest ważne, bo konwersja float=>string (w php a nie mysql'u) jest powodem problemu.
Powinno być:
  1. <?php
  2. $cena = "35.30";
  3. $pytanie2 = @mysql_query("SELECT cena FROM gm_towary WHERE cena=".$cena);
  4. ?>

albo:
  1. <?php
  2. $cena = 35.30; 
  3. $pytanie2 = @mysql_query("SELECT cena FROM gm_towary WHERE cena=".sprintf("%01.2f",$cena));
  4. ?>


Z uwagami o apostrofach się zgadzam.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 9.10.2025 - 12:49