Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Pobieranie kwoty (liczby float) z bazy
Forum PHP.pl > Forum > Przedszkole
hyhyhy
Witam,

Mam w bazie, w rekordzie tabeli użytkowników pole suma, dotyczące sumy wartości jego zamówień. Pole typu FLOAT.
W panelu, gdzie mogę sobie podejrzeć userów, mam najpierw wypisanie szczegółów jego profilu pętlą
  1. $result = mysql_query("SELECT * FROM klienci WHERE id = '".$this->id."' ");
  2. while($this->row=mysql_fetch_assoc($result)){
  3. ...
  4. echo $this->row["suma"].' <br />'
  5. ...
  6. }


Sumę z bazy wyrzuca mi jak należy. Jednak dalej "coś się dzieje"

Nieważne, czy zapiszę

  1. $this->suma=$this->row["suma"];
  2. //czy zapiszę
  3. $this->suma=(float)$this->row["suma"];


Zmienna var $suma jest pusta. Podejrzewam, że typ danych (float) ma tu coś do rzeczy, że nie potrafi mi tego przepisać. Mało tego, jeżeli usiłuję do niej dodać zmienną z $_POST["nowa_kwota"], dalej wychodzi zero smile.gif
Dodam, że przypisanie wykonuje w tej samej pętli, w której wypisuję profil usera.

Czy ktoś wie, dlaczego tak się dzieje?
peter13135
Błędu tu nie widzę, pokaż całą klasę
hyhyhy
Tylko od razu zaznaczam, że dopiero oswajam się z modelem obiektowym i bardziej to przypomina zbiór funkcji smile.gif

  1. class profile{
  2.  
  3. var $id;
  4. var $row;
  5. var $zamowienia;
  6. var $suma;
  7. var $z_data;
  8. var $z_kwota;
  9.  
  10. public function __construct($in){
  11. $this->id = (int)$in;
  12. }
  13.  
  14.  
  15. public function profil(){
  16. $result = mysql_query("SELECT * FROM klienci WHERE id = '".$this->id."' ");
  17. while($this->row=mysql_fetch_assoc($result)){
  18. echo $this->row["login"].' <br />';
  19. echo $this->row["imie_nazwisko"].' <br />';
  20. echo $this->row["adres"].' <br />';
  21. echo $this->row["kod_miasto"].' <br />';
  22. echo $this->row["email"].' <br />';
  23. echo $this->row["telefon"].' <br />';
  24. echo $this->row["zamowienia"].' <br />';
  25. echo $this->row["suma"].' <br />';
  26. $this->zamowienia=$this->row["zamowienia"];
  27. $this->suma=$this->row["suma"];
  28. echo '<hr />';
  29.  
  30. }
  31. }
  32.  
  33. public function showForm(){
  34. echo '<form action='.$_SERVER['REQUEST_URI'].' method=POST>
  35. <input type=text name=data maxlength=30> Data <br />
  36. <input type=text name=kwota maxlength=30> Kwota <br />
  37. <input type=submit value=Dodaj!>
  38. </form>';
  39.  
  40. }
  41.  
  42. private function raport(){
  43. echo 'Uaktualniono użytkownika; '.$this->row["imie_nazwisko"].'>br />';
  44. echo 'Dodano zamowienie: '.$this->z_kwota.'@'.$this->z_data.' <br />';
  45. echo 'Suma zamówień tego użytkownika teraz wynosi: '.$this->suma;
  46. }
  47.  
  48.  
  49. public function zapisz(){
  50. $this->z_kwota = (float)$_POST["kwota"];
  51. $this->z_data = mysql_real_escape_string(htmlspecialchars($_POST["data"]));
  52.  
  53.  
  54. $this->zamowienia .= $this->z_kwota.'@'.$this->z_data.'#';
  55. $this->suma =+ $this->suma;
  56.  
  57. mysql_query("UPDATE klienci SET zamowienia = '".$this->zamowienia."', suma = '".$this->suma."' WHERE id = '".$this->id."' ");
  58. $this->raport();
  59.  
  60. }
  61.  
  62.  
  63. $p = new profile($_GET['id']);
  64. if (isset($_POST) && !empty($_POST)){
  65. $p->zapisz();
  66. }else{
  67. $p->profil();
  68. echo '<br /><br />';
  69. $p->showForm();


I suma na końcu = 0, dane z $_POST odbiera.

EDIT:
Już mam, wygląda na to, że przy przesyłaniu formularza klasa profile tworzy się na nowo i zeruje mi zmienne.
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.