Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php & mysql] Zrzucanie wyniku z mysql'a do tablicy
Jawor
post
Post #1





Grupa: Zarejestrowani
Postów: 73
Pomógł: 2
Dołączył: 1.10.2003

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


Witam

Mam pytanie czy oplacalne jest tworzenie funkcji ktora zrzucalaby w petli wynik danego zapytania do tablicy dwuwymiarowej (wiecej niz jeden rekord), a nastepnia zwracalaby ta tablice poprzez return ?

Za:
- bardziej przejrzysta i poukladana struktura kodu
- po wywolaniu funkcji operacja na samej tablicy

Przeciw:
- niepotrzebne powtarzanie dwoch petli - jedna to odczyt z bazy i wrzucanie do tablicy, druga to odczyt z tablicy

Czy w tym przypadku oplaca sie tworzyc dodatkowa funkcje ?
Oczywiscie moge sobie napisac oba sposoby i porownac czas wykonania ale niestety same wyniki czasowe za wiele mi nie mowia.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Jawor
post
Post #2





Grupa: Zarejestrowani
Postów: 73
Pomógł: 2
Dołączył: 1.10.2003

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


Ok. W takim razie postanowilem zrobic to sposobem opisanym w pierwszym poscie.
Niestety mam pewne problemy :/

Jezeli funkcja zwraca mi tablice jednowymiarowa to robie tak:

  1. <?php
  2. list($id, $from, $to) = message_show();
  3. ?>


wtedy dane pola zawieraja sie w zmiennych "id, from, to".


Sprawa sie troche komplikuje jak mam tablice dwuwymiarowa.
Proboje to robic tak ...

Miejsce w funkcji gdzie wrzucam wynik zapytania do tablicy dwuwymiarowej.
  1. <?php
  2.  
  3. $i = 0;
  4.  
  5. while ($result = mysql_fetch_array($query))
  6. {
  7.  
  8. $msg_list[$i]['id'] = $result['id'];
  9. $msg_list[$i]['msg_from'] = $result['msg_from'];
  10. $msg_list[$i]['msg_to'] = $result['msg_to'];
  11. $msg_list[$i]['subject'] = $result['subject'];
  12. $msg_list[$i]['text'] = $result['text'];
  13. $msg_list[$i]['date'] = $result['date'];
  14. $msg_list[$i]['status'] = $result['status'];
  15.  
  16. $i++;
  17.  
  18. }
  19.  
  20. return $msg_list;
  21.  
  22. ?>


Pozniej juz poza funkcja proboje ja pobrac nastepujaco ...

  1. <?php
  2.  
  3. list($id, $msg_from, $msg_to, $subject, $text, $date, $status) = message_show_list();
  4.  
  5. $i = '0';
  6.  
  7. while (!empty($id[$i]))
  8. {
  9. echo $id[$i]; // przykladowo chce tutaj wyswietlic wszystkie pola id ktore zostaly pobrane z baz
  10.  
  11. $i++;
  12. }
  13.  
  14. ?>


Niestety to nie dziala.
Wyswietla tylko:

Kod
Notice: Undefined offset: 6 in C:Program Files...test.php on line 63

Notice: Undefined offset: 5 in C:Program Files...test.php on line 63

Notice: Undefined offset: 4 in C:Program Files...test.php on line 63

Notice: Undefined offset: 3 in C:Program Files...test.php on line 63

Notice: Undefined offset: 2 in C:Program Files...test.php on line 63


Myslalem aby funkcje list() wywolywac w petli i po jednym wierszu pobierac dane ale wydajniej bedzie zrobic to za jednym razem.

Bede wdzieczny za jakies wskazowki jak to rozwiazac.
Go to the top of the page
+Quote Post

Posty w temacie


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: 8.10.2025 - 23:13