Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]PDO wyświetlanie z bazy jednego rekordu.
Forum PHP.pl > Forum > Przedszkole
miras
Witam, mam taką funkcję, która hmm "pobiera" z bazy dany rekord teraz pytanie - jak wyświetlić ? dajmy na to, że mam tam w bazie komórki: telefon, imie, nazwisko, email


  1. public function check() {
  2. if (!empty($_POST['sprawdz'])) {
  3. $this->pyt = $this->pdo->prepare("SELECT * FROM users WHERE email=?");
  4. $this->pyt->execute(array($this->email));
  5. var_dump($this->pyt);
  6. }
  7. }
Helid
Nie jestem pewien ale coś w stylu
  1. $result = $this->pyt->execute(array($this->email));
  2. foreach($result as $row)
  3. {
  4. echo $row->email;
  5. }
miras
ale konieczna jest pętla przy wyświetlaniu tylko jednego rekordu ?
Crozin
Dlaczego od razu nie sprawdziłeś w manualu, gdzie jak na tacy podane jest jak pobrać pojedynczy rekord?
http://php.net/manual/en/pdostatement.fetch.php
miras
fakt, jednak po skorzystaniu z manuala - niby działa, ale mam jeszcze jeden błąd:


kod:
  1. public function check() {
  2. if (!empty($_POST['sprawdz'])) {
  3. $this->pyt = $this->pdo->prepare("SELECT * FROM users WHERE email=?");
  4. $this->pyt->execute(array($this->email));
  5. $this->pyt->setAttribute(PDO::FETCH_ASSOC); // 73 linijka
  6. $this->row = $this->pyt->fetch();
  7. echo $this->row['email'];
  8. }
  9. }


treść błędu:
  1. Warning: PDOStatement::setAttribute() expects exactly 2 parameters, 1 given in C:\xampp-portable\htdocs\x\class\x.php on line 73
Crozin
Przecież treść komunikatu błędu mówi wszystko, mamy tłumaczyć Ci z angielskiego na polski?
miras
nie nie musisz mi tłumaczyć, doskonale to rozumiem, jednak rozumieć treść błędu a potrafić go naprawić to chyba jest delikatna różnica, nie ?
ber32
Witam. Tu jest ciekawy przykład zerknij i będziesz wiedział co jest nie tak. PDO
viking
setAttribute jak można logicznie ustalić ustawia (jak większość podobnych funkcji) jaki atrybut na jaką wartość. Masz pełno przykładów tego:

PDO::ATTR_DEFAULT_FETCH_MODE <- jaką opcję zmienić?
PDO::FETCH_ASSOC <- na jaką wartość
miras
ehh, no nie mogę tego zatrybić, możecie mi podac konkretny przyklad jak to rozwiazac? (tak prosze o gotowca) obecny kod:

  1. public function check() {
  2. if (!empty($_POST['sprawdz'])) {
  3. $this->pyt = $this->pdo->prepare("SELECT * FROM users WHERE email=?");
  4. $this->pyt->execute(array($this->email));
  5. $this->pyt->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
  6. $this->row = $this->pyt->fetch();
  7. echo $this->row['email'];
  8. }
  9. }
nospor
No i jaki masz teraz blad? Co ci znowu nie dziala?
miras
błąd ten sam co wcześniej...

  1. Warning: PDOStatement::setAttribute() expects exactly 2 parameters, 1 given in C:\xampp-portable\htdocs\x\class\x.php on line 73
nospor
Jestes pewien ze pokazales wlasciwy kod z komunikatu bledu ? Wlasciwa linia 73??
ber32
brak połączenia
  1. $this->pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
  2. $this->pyt = $this->pdo->prepare("SELECT * FROM users WHERE email=?");
  3. $this->pyt->execute(array($this->email));

teraz będzie działać
miras
Dzięki wielkie.. teraz zakuć to na pamięć tylko ;>
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.