Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Pobranie z bazy danych
rekamil97
post
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 19.11.2014

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


Mam prostą kontrukcje pobierającą dane z bazy po id. W przypadku gdy id nie istnieje foreach nie zwraca wartości. Co zrobić żeby wtedy wpisało komunikat "pusta wartość"?

Próbowałem najróżniejszych dziwnych metod (np: liczeniu liter zwracanej wartości i gdy jest to 0 komunikat "puste" ale nie udało się bo funkcja nic nie zwraca).

  1. name = $db->prepare('SELECT name,opis FROM menu WHERE id=:id');
  2. $name->execute(array('id'=>$_GET['id']));
  3. foreach($name as $name) {
  4. echo($name['name']); // Zwraca rekord z bazy gdy id istnieje
  5. }


Go to the top of the page
+Quote Post
Rysh
post
Post #2





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

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


  1. $name = $db->prepare('SELECT name,opis FROM menu WHERE id=:id');
  2. $name->execute(array('id'=>$_GET['id']));
  3. if($name->fetchColumn() > 0) {
  4. foreach($name as $dane) {
  5. echo($dane['name']); // Zwraca rekord z bazy gdy id istnieje
  6. }
  7. } else {
  8. echo 'brak danych';
  9. }


Ten post edytował Rysh 19.11.2014, 22:57:56
Go to the top of the page
+Quote Post
rekamil97
post
Post #3





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 19.11.2014

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


Niestety ale teraz cały czas zwraca mi wynik "brak danych" nawet gdy id jest prawidłowe
Go to the top of the page
+Quote Post
Rysh
post
Post #4





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

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


Zobacz co zwraca:
$name->fetchColumn();
Go to the top of the page
+Quote Post
rekamil97
post
Post #5





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 19.11.2014

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


Kod:

  1. echo($name->fetchColumn());


Zwraca rekord z bazy danych dla podanego id
Go to the top of the page
+Quote Post
Rysh
post
Post #6





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

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


Cytat(rekamil97 @ 19.11.2014, 23:08:06 ) *
Kod:

  1. echo($name->fetchColumn());


Zwraca rekord z bazy danych dla podanego id

Przepraszam, pomyliły mi się funkcję. Daj zamiast tego:

  1. if(count($name) > 0 ) {
  2. // ...
  3. }
Go to the top of the page
+Quote Post
rekamil97
post
Post #7





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 19.11.2014

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


Niestety kod:

  1. if(count($name) > 0) {
  2. foreach($name as $dane); {
  3.  
  4. echo('$dane['name']');
  5. }
  6. } else {
  7. echo('Brak');
  8. }


Bez danych (przy nieistniejącym id) też przechodzi warunek pozytywnie. Cały czas funkcja count($name) zwraca wartość 1

Ten post edytował rekamil97 19.11.2014, 23:23:16
Go to the top of the page
+Quote Post
@rtur
post
Post #8





Grupa: Zarejestrowani
Postów: 254
Pomógł: 3
Dołączył: 23.02.2006

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


  1. if($name->RowCount()!=0) { // liczy ile rekordów zwróci zapytanie, jeśli więcej jak 0 ...
  2. $wiersz = $name -> fetchAll();
  3. foreach($wiersz as $dane) {
  4. echo $dane['name'];
  5. }
  6. } else {
  7. echo 'brak danych'; // w przypadku braku rekordów dla zapytania
  8. }


Ten post edytował @rtur 21.11.2014, 10:33:06
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: 22.12.2025 - 21:14