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 8.05.2013, 17:30:49
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 8.05.2013, 17:44:53
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 8.05.2013, 17:47:13
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 8.05.2013, 17:49:45
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 8.05.2013, 17:58:13
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 8.05.2013, 18:04:15
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 8.05.2013, 18:06:51
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 8.05.2013, 23:16:53
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 9.05.2013, 05:49:09
Post #9





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
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 16.05.2013, 19:42:52
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 16.05.2013, 19:57:56
Post #11





Grupa: Moderatorzy
Postów: 36 457
Pomógł: 6296
Dołączył: 27.12.2004




No i jaki masz teraz blad? Co ci znowu nie dziala?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
miras
post 16.05.2013, 20:13:05
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 16.05.2013, 20:14:59
Post #13





Grupa: Moderatorzy
Postów: 36 457
Pomógł: 6296
Dołączył: 27.12.2004




Jestes pewien ze pokazales wlasciwy kod z komunikatu bledu ? Wlasciwa linia 73??


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
ber32
post 16.05.2013, 20:22:15
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 16.05.2013, 21:18:27
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
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 27.04.2024 - 08:06