Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Zapytanie mysql w funkcji
lordvanyuri
post 25.11.2019, 14:04:14
Post #1





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 11.12.2008

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


Witam,
Jak podejść do następującego problemu.
Na stronie chcę ściągnąć status z bazy danych mysql w kilku miejscach i wszystko jest ok.
Ale problem pojawia się, wtedy gdy chcę przerzucić ściągnięcie statusu do funkcji - jak to obejść?

Sytuacja, gdy wszystko działa:

strona index.php
  1. $getstatus = $mybase->prepare("SELECT nazwa FROM status WHERE id = 1");
  2. $getstatus->execute();
  3. while($row = $getstatus->fetch()){
  4. $status_txt = $row['nazwa'];
  5. }
  6. print $status_txt;
  7. $getstatus->closeCursor();
  8. unset($getstatus);


i wszystko jest ok, ale gdy już zrobię tak:
  1. $status_txt = get_status(1);
  2. print $status_txt;

a funkcję mam następującą:
  1. function get_status($id_status){
  2. if (isset($id_status)){
  3. $getstatus = $mybase->prepare("SELECT nazwa FROM status WHERE id = 1");
  4. $getstatus->execute();
  5. while($row = $getstatus->fetch()){
  6. $status_nazwa = $row['nazwa'];
  7. }
  8. $status_txt = $status_nazwa;
  9. $getstatus->closeCursor();
  10. unset($getstatus);
  11. } else {
  12. $status_txt = false;
  13. }
  14. return $status_txt;
  15. }


I już z funkcji nie zwraca wyniku - domyślam, się, że chodzi o funkcję prepare, czyli funkcja w funkcji.
Przy większych stronach, gdzie trzeba na szybko ściągnąć jakąś nazwę z bazy lepiej i przejrzyściej na stronie wygląda odwołanie do funkcji, niż za kazdym razem umieszczanie tego w kodzie, i stąd moje pytanie, w jakim kierunku iść, aby to przeskoczyć?
Go to the top of the page
+Quote Post
viking
post 25.11.2019, 14:10:54
Post #2





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

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


A skąd funkcja ma wiedzieć co zawiera zmienna $mybase? Musisz ją przekazać.

  1. function get_status(int $id_status, \PDO $mybase) : ?string {
  2. }


--------------------
Go to the top of the page
+Quote Post
lordvanyuri
post 25.11.2019, 14:25:46
Post #3





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 11.12.2008

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


Faktycznie, chyba za długo nad tym dumałem, bo rozwiązanie banalne smile.gif dzięki wielkie, łapka poszła smile.gif
Go to the top of the page
+Quote Post
nospor
post 25.11.2019, 14:40:09
Post #4





Grupa: Moderatorzy
Postów: 36 455
Pomógł: 6292
Dołączył: 27.12.2004




Zanim pojdziesz dalej: wlacz wyswietlanie bledow. Przeciez php plul bledem, ze zmienna $mybase jest niezdefiniowana. Wszystko miales na talerzu, wystarczylo tylko zajrzec do logow a nie strzelac i pol dnia marnowac

przenosze


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

"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

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: 25.04.2024 - 22:00