Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]PDO wyświetlanie z bazy jednego rekordu., jw
miras
post
Post #1





Grupa: Zarejestrowani
Postów: 1 004
Pomógł: 9
Dołączył: 18.01.2011
Skąd: Siedlce

Ostrzeżenie: (30%)
XX---


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. }
Go to the top of the page
+Quote Post
Helid
post
Post #2





Grupa: Zarejestrowani
Postów: 280
Pomógł: 20
Dołączył: 12.12.2007
Skąd: 127.0.0.1

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


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. }
Go to the top of the page
+Quote Post
miras
post
Post #3





Grupa: Zarejestrowani
Postów: 1 004
Pomógł: 9
Dołączył: 18.01.2011
Skąd: Siedlce

Ostrzeżenie: (30%)
XX---


ale konieczna jest pętla przy wyświetlaniu tylko jednego rekordu ?
Go to the top of the page
+Quote Post
Crozin
post
Post #4





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


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
Go to the top of the page
+Quote Post
miras
post
Post #5





Grupa: Zarejestrowani
Postów: 1 004
Pomógł: 9
Dołączył: 18.01.2011
Skąd: Siedlce

Ostrzeżenie: (30%)
XX---


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
Go to the top of the page
+Quote Post
Crozin
post
Post #6





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Przecież treść komunikatu błędu mówi wszystko, mamy tłumaczyć Ci z angielskiego na polski?
Go to the top of the page
+Quote Post
miras
post
Post #7





Grupa: Zarejestrowani
Postów: 1 004
Pomógł: 9
Dołączył: 18.01.2011
Skąd: Siedlce

Ostrzeżenie: (30%)
XX---


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 ?
Go to the top of the page
+Quote Post
ber32
post
Post #8





Grupa: Zarejestrowani
Postów: 332
Pomógł: 22
Dołączył: 6.07.2010

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


Witam. Tu jest ciekawy przykład zerknij i będziesz wiedział co jest nie tak. PDO
Go to the top of the page
+Quote Post
viking
post
Post #9





Grupa: Zarejestrowani
Postów: 6 381
Pomógł: 1116
Dołączył: 30.08.2006

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


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ść
Go to the top of the page
+Quote Post
miras
post
Post #10





Grupa: Zarejestrowani
Postów: 1 004
Pomógł: 9
Dołączył: 18.01.2011
Skąd: Siedlce

Ostrzeżenie: (30%)
XX---


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. }
Go to the top of the page
+Quote Post
nospor
post
Post #11





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No i jaki masz teraz blad? Co ci znowu nie dziala?
Go to the top of the page
+Quote Post
miras
post
Post #12





Grupa: Zarejestrowani
Postów: 1 004
Pomógł: 9
Dołączył: 18.01.2011
Skąd: Siedlce

Ostrzeżenie: (30%)
XX---


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
Go to the top of the page
+Quote Post
nospor
post
Post #13





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Jestes pewien ze pokazales wlasciwy kod z komunikatu bledu ? Wlasciwa linia 73??
Go to the top of the page
+Quote Post
ber32
post
Post #14





Grupa: Zarejestrowani
Postów: 332
Pomógł: 22
Dołączył: 6.07.2010

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


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ć
Go to the top of the page
+Quote Post
miras
post
Post #15





Grupa: Zarejestrowani
Postów: 1 004
Pomógł: 9
Dołączył: 18.01.2011
Skąd: Siedlce

Ostrzeżenie: (30%)
XX---


Dzięki wielkie.. teraz zakuć to na pamięć tylko ;>
Go to the top of the page
+Quote Post

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: 17.09.2025 - 12:26