Cache - Baza danych

2012-03-08 11:34:12 Post #21 nospor

 
No ale ty do cache nie masz wkładać całej tabeli, tylko daną stronę.
Tworząc cache masz tworzyć go dla danej strony. Dla idcache dodawaj aktualnej strony.

2012-03-08 11:48:02 Post #22 gość_xxdrago

 
Nie rozumiem, możesz jaśniej?

2012-03-09 07:48:53 Post #23 nospor

 
No cache masz tworzyć dla strony... No co tu można pisać jaśniej? Jesteś na stronie 1 to robisz dla 1. Jesteś na 6 to robisz dla 6
<?php
$pager = new Pager('id');
$pager->SetTotalRecords($liczbarekordow);
$pager->Make(true);
$pag = $pager->Render();
$actualPage = $pager->GetActualPage(); //tu aktualna strona
	
$coId = 'news'.$actualPage;
if (is_null($news = $this->Cache->Get($coId, '@queries'))){
......
}

?>

2012-03-09 16:07:57 Post #24 gość_xxdrago

 
Zrobiłem, coś takiego:
http://pastebin.com/bHeAVSKK

Wyskakuje:
Fatal error: Using $this when not in object context in C:\Program Files (x86)\xampp\xampp\htdocs\index.php on line 61

2012-03-09 17:55:11 Post #25 nospor

 
No ale nie kopiuj bezmyślnie. To był tylko przykład byś widział jak robić....

Czy ty masz $this->Cache?? Nie, ty masz $cache.

ps: w kodzie co pokazałeś ty znowu pobierasz wszystko. Jedyne co zmieniles, to to, że to "wszystko" łądujesz do chace danej strony. Do cache danej strony masz ładować dane z danej strony a nie wszystko...

2012-03-09 18:01:10 Post #26 gość_xxdrago

 
Co masz na myśli wszystko?

2012-03-09 18:09:24 Post #27 gość_xxdrago

 
PS:
Jeżeli ci chodzi o dane typu:
$news[] = array(
            'nazwa' => znaki('znaki', $newss['nazwa']),
            //'link' => $newss['link'],
            'id' => $newss['id'],
            'link' => $newss['link'],
            'tresc' => $cutText,
            'autor' => $newss['autor'],
            'data' => $newss['data'],
            'komentarze' => $row[0],
        );

To muszę je mieć aby potem je wyświetlić ładnie newsy:
<!--BeginNEWS-->
<div class="grid_6">
    <div class="title"><h2><a href="{link}.html">{nazwa}</a></h2></div>
    <div class="clear"></div>
    <div class="meta_data">Napisany przez {autor} dnia {data} {coments}</div>
    <div class="clear"></div>


    <p>{tresc}</p>
    <div class="clear"></div>
    <a href="{link}.html">&raquo; Czytaj więcej</a>
</div>

<!--EndNEWS-->
<div class="pagination">
    {pager}
</div>

2012-03-09 18:22:10 Post #28 nospor

 
"wszystko" - wszystkie newsy....
Zdaje się robisz stronicowanie wiec do cache danej strony masz wrzucać newsy z danej strony a nie wszystkie jakie masz w tabeli.

2012-03-09 18:30:11 Post #29 gość_xxdrago

 
No to mam sobie ustawić limit w zapytaniu ?

2012-03-09 18:37:15 Post #30 gość_xxdrago

 
Dobra, ładnie wszystko działa jak byś mógł jeszcze zobaczyć na kod:
http://pastebin.com/g38vaFSK

2012-03-09 18:48:20 Post #31 nospor

 
Zdecydowanie lepiej.

A wiesz, ze kometarze możesz pobrać w tym samym zapytaniu co newsy? ZWykły left join + group by + count

2012-03-10 19:06:15 Post #32 gość_xxdrago

 
acha, no to juz wiem Tylko kurde nie wiem czemu ale cały czas mi pobiera dane do cache.

2012-03-11 19:10:42 Post #33 gość_nospor

 
A skąd wiesz, że ciągle wkłada do cache zamiast pobierać?

2012-03-11 19:12:12 Post #34 gość_nospor

 
Juz wiem czemu.....

Tak pobierasz:
if (is_null($news = $cache->Get($coId, '@queries'))) {
a tak wkładasz
$cache->Put('news', $news, '@queries');

Widzisz coś ciekawego?

2012-03-12 16:28:56 Post #35 gość_xxdrago

 
Tak, mam włożyć dane w if i dać warunek jeżeli $news jest null A tak w ogóle to mam jakieś postępy z tym php? Bo niektórzy mi mówią , żeby zaczął programować obiektowo. Co o tym myślisz?

2012-03-12 21:45:18 Post #36 gość_xxdrago

 
Ale teraz patrze i dalej nie wiem o co chodzi...

2012-03-13 07:40:51 Post #37 nospor

 
Jaki null.....
Czy naprawde nie widzisz, że dane wkładasz do cache o nazwie X a pobierasz z cache o nazwie Y?? Nie uważasz, że powinieneś i wkładać i pobierać z X??

2012-03-13 15:22:48 Post #38 gość_xxdrago

 
Dobra chodzi dziękuje ale ze mnie nie "dureń". Teraz pytanie z tym obiektowy jak wyżej

2012-03-13 15:27:32 Post #39 nospor

 
No obiektówkę dobrze znać i stosować.
Kod jest czytelniejszy, bardziej skalowalny i ogólnie przyjaźniej się programuje.

2012-03-13 21:08:23 Post #40 gość_xxdrago

 
Gdzie najlepiej nauczyć się ponad podstaw MySQL miedzy innymi z tym lef join co pisałeś wyżej? Bo w dokumentacji nie najlepiej to pisze...

Odpowiedz

Skrypty użytkowników

  1. Klasa obsługi szablo... Lirdoner
  2. Sekcje user76
  3. Klasa walidująca for... user76
  4. Licznik Gości online korey
  5. Form Builder Comandeer
  6. Dynamiczny licznik z... korey
  7. Captcha Comandeer