Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] wyciągnięcie wartości zmiennej z klasy
Forum PHP.pl > Forum > Przedszkole
artek
mam sobie w klasie jakas zmienna

  1. public $a;


i metodke

  1. public function countRows() {
  2. foreach ($this->querryAllFromArticles() as $row) {
  3. $this->howManyRows++;
  4. }
  5.  
  6. return $this->howManyRows;
  7. }


no i kolejną, przypisującą do $a wynik z metody countRows()

  1. public function returnBeforRows() {
  2. return $this->a;
  3. }



teraz chcę, aby w innym pliku wziąć wartość $a do zmiennej:

  1. require('database.php');
  2. $asd= new nazwaklasy;
  3.  
  4.  
  5. $rowsB = $asd->a;



dlaczego ciągle $rowsB jest NULL? metody działają i liczą
czychacz
  1. public function returnBeforRows() {
  2. return $this->a;
  3. }

Nie przypisuje tylko zwraca właściwość $a.
  1. require('database.php');
  2. $asd= new nazwaklasy;
  3.  
  4.  
  5. $rowsB = $asd->a;

Tworzy pusty obiekt (o ile w konstruktorze nic nie wpisałeś), więc niezainicjowane $a też będzie puste.
Crozin
Utworzyłeś nowy, "pusty" obiekt. Właściwość a jest właściwością obiektu. Dlaczego spodziewasz się czegokolwiek innego niż NULL-a?
nospor
znajdz 10 roznic:
$this->a
$this->howManyRows
viking
Z tego kodu nie wynika żebyś gdzieś przypisywał cokolwiek do $this->a.
Poza tym zamiast iterować po zbiorze żeby policzyć ilość nie lepiej zapytanie count()?
artek
zapytam inaczej, mam 2 pliki:
-a
-b

w a mam klase, w której jest:
-zmienna ilosc
-metoda licząca

w pliku b chcę wykorzystać zmienną z pliku a, ustawioną przez metodę, jak to zrobić?

ogólnie potrzebuję 2 wyników, ilość wierszy przed dodaniem rekordu, ilość po dodaniu, bo chcę sprawdzić, czy się dodał
nospor
Bez sensu do tego podchodzisz... jak chcesz sprawdzic czy ci sie rekord dodal, to od tego kazda funkcja operujaca na bazie zwraca wynik czy sie powiodlo czy nie. Wystarczy to sprawdzic
artek
Cytat(nospor @ 28.10.2015, 15:33:32 ) *
Bez sensu do tego podchodzisz... jak chcesz sprawdzic czy ci sie rekord dodal, to od tego kazda funkcja operujaca na bazie zwraca wynik czy sie powiodlo czy nie. Wystarczy to sprawdzic


nie wiem, jak skonstruować warunek na podstawie takiej wiedzy

EDIT:
zrobiłem tak jak poradziłeś, może trochę inaczej, dziękuję smile.gif
viking
http://php.net/manual/en/pdostatement.execute.php
Zwraca true/false. Dodatkowo wiadomo że jeżeli wystąpi wyjątek to modyfikacja się nie powiodła.

Jeśli korzystasz z jakiegoś gotowego frameworka to większość dla insert zwraca PK, dla update ilość zmodyfikowanych rekordów.
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.