Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php][mysql] Funkcja w pętli, potrzebny jakiś cache
Coolmax
post
Post #1





Grupa: Zarejestrowani
Postów: 168
Pomógł: 0
Dołączył: 12.11.2005
Skąd: Bulowice nearby Wadowice (E), Oświęcim (W)

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


Właśnie zauważyłem bezsensowność mojego kodu. Nie mam pomysłu jak go poprawić:
  1. <?php
  2. function data($column, $no) {
  3. connection();
  4. $query = "SELECT * FROM ksiazki where active = 1";
  5. $result = mysql_query($query);
  6. $row = mysql_num_rows($result);
  7. mysql_data_seek($result, $no);
  8. $r = mysql_fetch_assoc($result);
  9. print_r($r[$column]);
  10. }
  11. ?>
Podając nazwę kolumny i numer wiersza, zwraca wynik. Miała mi uprościć życie, bo podaje ją w pętli. Dopiero jak dałem ją do pętli, która pobiera całość (ok. 9 kolumn, 21 rekordów [9*21= 189 zapytań]) to zauważyłem, że znacznie spadła wydajność skryptu. Podejrzewm, że wrzucając zapytanie do osobnej funkcji, również bedzie się wykonywała tyle razy ile jest iteracji w pętli. Jest jakieś rozwiązanie tego problemu? (Nie chodzi mi o takie, jakie jest kilka topiców niżej w temacie "cache", pliki odpadają)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Coolmax
post
Post #2





Grupa: Zarejestrowani
Postów: 168
Pomógł: 0
Dołączył: 12.11.2005
Skąd: Bulowice nearby Wadowice (E), Oświęcim (W)

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


Zrobię, tak jak pisałeś. Żebyś lepiej mnie zrozumiał podam ci przykład do powyższej funkcji:
  1. <?php
  2. <form action="./<?=basename($_SERVER['PHP_SELF']);?>?site=aukcje" method="post">
  3. <select name="book" onchange="submit(this);">
  4. for($i = 0; $i < rows(); $i++){
  5. echo "<option value="$i" >";
  6. data('id', $i);
  7. echo ". ";
  8. data('authors', $i);
  9. echo " - ";
  10. data('title', $i);
  11. echo "</option>n";
  12. }
  13. </select>
  14. </form>
  15. ?>

Teraz funkcja zwracana np. kolumnę authors, o podanym numerze $i, ale co z tego jak za każdym razem, jest wykonywane zapytanie do MySQL'a, a przecież można wykonać (chyba) 1x zapytanie, a potem operować w pętli tylko na zwróconym przez zapytanie "zasobie". Tylko właśnie nie potrafie czegoś takiego wymyślić.

Ten post edytował Coolmax 31.08.2006, 22:22:01
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: 27.12.2025 - 04:30