Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Funkcja php
gandziorz
post
Post #1





Grupa: Zarejestrowani
Postów: 101
Pomógł: 0
Dołączył: 20.12.2006

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


Witam,
Napisałem pewną funkcję do użycia w szablonie smarty.
Jeżeli w szablonie użyję $settings.costam to pokaże mi dane z "value" gdzie "name" to costam.

Baza sql:
  1. CREATE TABLE settings (
  2. `id` bigint(5) NOT NULL AUTO_INCREMENT,
  3. `name` text,
  4. `value` text,
  5. PRIMARY KEY (id)
  6. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;


Funkcja w php:
  1. <?php
  2. $settings = array();
  3. $query = "SELECT * FROM ".$DB['db_prefix']."settings";
  4. $result = @mysql_query($query);
  5. while ($row = mysql_fetch_assoc($result)) {
  6. $settings[$row['name']] = $row['value'];
  7. }
  8. $smarty->assign('settings', $settings);
  9. ?>


Chodzi o to że przy dużej ilości danych ta funkcja jest niezbyt przyjazna.
Ponieważ pobiera wszystkie dane a nie te które potrzebuję.

Jakiś pomysł ktoś ma?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
luck
post
Post #2





Grupa: Zarejestrowani
Postów: 317
Pomógł: 58
Dołączył: 6.11.2005

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


Cytat(gandziorz @ 24.08.2008, 20:29:38 ) *
Chodzi o to że przy dużej ilości danych ta funkcja jest niezbyt przyjazna.
Ponieważ pobiera wszystkie dane a nie te które potrzebuję.

Jakiś pomysł ktoś ma?

No to zmodyfikuj funkcję tak, by pobierała tylko wartość która jest Ci w danym momencie potrzebna (dodaj do zapytania jakiś WHERE i LIMIT 1). A już pobrane informacje zapisuj sobie np. w $_SESSION['settings']. Kiedy potrzebujesz użyć jakiejś wartości z tej tabeli, sprawdzasz najpierw czy nie ma jej w sesji. Jeśli nie ma, to odczytujesz z bazy i od razu zapamiętujesz. Kilka drobnych zmian i gotowe (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
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: 11.10.2025 - 11:30