Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Jak przypisać rekordy z bazy do zmiennych widocznych w innych plikach?, Zapytanie MySQL i pętla while
QeX
post 25.06.2012, 21:49:53
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 13.04.2012

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


Witam,

pobieram rekordy z bazy za pomocą tej funkcji:

  1. function retrieve_entry(){
  2.  
  3. $query = "SELECT title, content, date_created FROM blog";
  4. $result = mysql_query($query);
  5.  
  6. while($row = mysql_fetch_array($result)) {
  7. echo "<p style=\"font-weight: bold\">".$row['date_created']."</p><p style=\"font-weight: bold\">".$row['title']."</p>
  8. <p>".$row['content']."</p><br />\n";
  9.  
  10. }
  11. }


Jak "wydobyć" rekordy z funkcji i przypisać do zmiennych "widocznych" w innym pliku php? Chodzi mi o to, aby sformatować dane w szablonie html, a nie w ciele tej funkcji.
Go to the top of the page
+Quote Post
piotrooo89
post 25.06.2012, 21:55:31
Post #2


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




zwróć sobie tablice z rekordami i poźniej będziesz operował na niej.


--------------------
Go to the top of the page
+Quote Post
Rysh
post 25.06.2012, 22:24:21
Post #3





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

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


Funkcja powinna zwracać wartość, a nie wyświetlać. Dlatego zrób co mówi piterooo89, czyli coś w ten deseń:
  1. function retrieve_entry(){
  2. $query = "SELECT title, content, date_created FROM blog";
  3. $result = mysql_query($query);
  4. while($row = mysql_fetch_array($result)) {
  5. $out[] = $row;
  6. }
  7. return $out;
  8. }


--------------------
Go to the top of the page
+Quote Post
QeX
post 26.06.2012, 14:26:53
Post #4





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 13.04.2012

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


Dzięki za odzew.

Rysh, nie wiem jak dalej ruszyć z Twoją propozycją, ale dlatego jestem w Przedszkolu wstydnis.gif

Póki co, mam taki kod, który przypisuje poszczególne pola z tabeli do zmiennych i to prawie to o co mi chodzi, ale... pod zmiennymi 'tytul', 'tresc' i 'data' są tylko dane pierwszego rekordu. Nie wiem jak zwrócić pola wszystkich rekordów.

  1. $query = "SELECT title, content, date_created FROM blog";
  2. $result = mysql_query($query);
  3.  
  4. while($row = mysql_fetch_array($result)) {
  5. $rows = array('tytul' => $row['title'], 'tresc' => $row['content'], 'data' => $row['date_created']);
  6. extract($rows);
  7. }
Go to the top of the page
+Quote Post
nospor
post 26.06.2012, 14:30:30
Post #5





Grupa: Moderatorzy
Postów: 36 441
Pomógł: 6290
Dołączył: 27.12.2004




Masz generować tablice a nie zmienne:
  1. $query = "SELECT title, content, date_created FROM blog";
  2. $result = mysql_query($query);
  3.  
  4. $tab = array();
  5. while($row = mysql_fetch_array($result)) {
  6. $tab[]= array('tytul' => $row['title'], 'tresc' => $row['content'], 'data' => $row['date_created']);
  7. }
  8.  
  9. print_r($tab);


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

"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
QeX
post 27.06.2012, 07:50:08
Post #6





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 13.04.2012

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


print_r zwróci coś takiego (przykładowy wpis):

Cytat
Array ( [0] => Array ( [tytul] => Tytuł wpisu [tresc] => Lorem ipsum dolor sit amet, consectetur adipisicing elit. Proin nibh augue, suscipit a, scelerisque sed, lacinia in, mi. Cras vel lorem. Etiam pellentesque aliquet tellus. Phasellus pharetra nulla ac diam. Quisque semper justo at risus. Donec venenatis, turpis vel hendrerit interdum, dui ligula ultricies purus, sed posuere libero dui id orci. Nam congue, pede vitae dapibus aliquet, elit magna vulputate arcu, vel tempus metus leo non est. Etiam sit amet lectus quis est congue mollis. Phasellus congue lacus eget neque. Phasellus ornare, ante vitae consectetuer consequat, purus sapien ultricies dolor, et mollis pede metus eget nisi. Praesent sodales velit quis augue. Cras suscipit, urna at aliquam rhoncus, urna quam viverra nisi, in interdum massa nibh nec erat. [data] => 2012-06-27 07:59:06 )


A chodzi mi o to:

Cytat
2012-06-27 07:59:06
Tytuł wpisu
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Proin nibh augue, suscipit a, scelerisque sed, lacinia in, mi. Cras vel lorem. Etiam pellentesque aliquet tellus. Phasellus pharetra nulla ac diam. Quisque semper justo at risus. Donec venenatis, turpis vel hendrerit interdum, dui ligula ultricies purus, sed posuere libero dui id orci. Nam congue, pede vitae dapibus aliquet, elit magna vulputate arcu, vel tempus metus leo non est. Etiam sit amet lectus quis est congue mollis. Phasellus congue lacus eget neque. Phasellus ornare, ante vitae consectetuer consequat, purus sapien ultricies dolor, et mollis pede metus eget nisi. Praesent sodales velit quis augue. Cras suscipit, urna at aliquam rhoncus, urna quam viverra nisi, in interdum massa nibh nec erat.


co jest wynikiem działania kodu:

  1. $query = "SELECT title, content, date_created FROM blog";
  2. $result = mysql_query($query);
  3. while($row = mysql_fetch_array($result)) {
  4. $rows = array('tytul' => $row['title'], 'tresc' => $row['content'], 'data' => $row['date_created']);
  5. extract($rows);
  6. $entvars = array ($data, $tytul, $tresc);
  7. foreach ($entvars as $entries) {
  8. echo $entries . '<br />';
  9. }
  10. }


Dodatkowo chciałbym oddzielnie formatować datę, tytuł i treść czyli np. dać pogrubioną datę, a tytuł inną czcionką. A więc "wyciągnąć" dane z tablicy i formatować w szablonie html w znacznikach {}. Może tworzyć oddzielne tablice dla pól?

Ten post edytował QeX 27.06.2012, 07:52:01
Go to the top of the page
+Quote Post
nospor
post 27.06.2012, 08:15:38
Post #7





Grupa: Moderatorzy
Postów: 36 441
Pomógł: 6290
Dołączył: 27.12.2004




....
print_r zwrócil co mial zwrócic. Dałem go po to byś zobaczył jak wygląda twoja tablica. Teraz jedyne co musisz zrobić to przelecieć po tej tablicy i wyświetlac jak ci się żywnie podoba. Do latania po tablicy służy FOREACH. Zanim napiszesz kolejnego posta pomyśl chwilkę.


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

"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: 16.04.2024 - 07:28