Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: złe pobieranie liczby
Forum PHP.pl > Forum > Bazy danych > MySQL
Chrom
Witam,
mam baze danych i w niej pole powierzchnia decimal 4,2 pozostałe pola typu varchar, pobieram dane

  1. <?php
  2. $result = @mysql_query($sql, $polaczenie) or die("brak odpowiedzi z zapytania");
  3. while ($row = mysql_fetch_array($result)) {
  4. $x = $row['x'];
  5. $y = $row['lyl'];
  6. $pow = $row['pow'];
  7. ?>


ale echo nie wyświetla liczby z bazy danych 52.49 tylko 0.00
może ktoś wie dlaczego?
pozostałe pola typu varchar wybierane są prawidłowo.

  1. <?php
  2. echo "<TD> " .$pow. " m<SUP>2</SUP> </TD> <TD> " . $x . " </TD> <TD> " . $y . " </TD>";
  3. ?>
c3zi
W bazie danych masz poprawne wartosci w tej komorce ?
Chrom
raczej tak: 52.49 przekopiowane a przekazuje 0.00
sticker
pokaz sql
Chrom
tabela chyba nic do tego nie ma chodzi o pole pow próbowałem już float ale dało to samo

  1. CREATE TABLE `users` (
  2. `id` mediumint(6) UNSIGNED NOT NULL AUTO_INCREMENT,
  3. `haslo` varchar(32) collate utf8_polish_ci NOT NULL,
  4. `budynek` varchar(25) collate utf8_polish_ci NOT NULL,
  5. `bud` varchar(12) collate utf8_polish_ci NOT NULL DEFAULT 'L4',
  6. `lokal` varchar(4) character SET latin1 NOT NULL DEFAULT '0',
  7. `pow` double(5,2) NOT NULL DEFAULT '0.00',
  8. UNIQUE KEY `id` (`id`)
  9. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci PACK_KEYS=0 AUTO_INCREMENT=418 ;

Polecenie:
  1. $sql = "SELECT * FROM `users` WHERE id = \"$id\" ";
  2. $result = @mysql_query($sql, $polaczenie) OR die("brak odpowiedzi z zapytania");
  3. while ($row = mysql_fetch_array($result)) {
  4. $id = $row['id'];
  5. $budynek = $row['budynek'];
  6. $lokal = $row['lokal'];
  7. $pow = $row['pow']; }
kris2
a nie mozesz sprawdzic recznie w bazie czy wartosc jest prawidlowa.
mysql ma klienta dosowego i mozna sobie podejrzec zawartosc danych. moze zle je insertujesz.
Chrom
dość dziwne jak dałem:

  1. SELECT pow FROM `users` ORDER BY id=2 ;


to wywaliło 414 rekordów i na końcu był właściwy jak dodałem

  1. SELECT pow FROM `users` ORDER BY id=2 DESC LIMIT 1 ;


to otrzymałem właściwy wynik dla szukanego pola.

ale jak wstawiłem desc limit 1 to dla całego wiersza to nie wcale wybrało rekordów.

Przerobiłem wszystko pozmieniałem rekordy i działa. niby wszystko tak samo a jednak, sam nie wiem gdzie był błąd ale dlaczego pozostałe kolumny były podawane prawidłowo
kris2
chyba chodzilo Tobie o
  1. SELECT pow FROM 'users' WHERE id=2;

Order by sluzy do sortowania a nie wybierania wyników.
post wczesniej masz prawidlowa skladnie

moze w kodzie do $id zle wysylasz dane?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.