Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Ilość komentarzy
Forum PHP.pl > Forum > Przedszkole
paulina94x
Mam pewny prbolem. Otóż, chcę robić komentarze, lecz z pewną ilością, lecz np. że jak będzie już 1 komentarz i jka wstawi się następny to tamten się usunie i ten zastąpi tamten poprzedni biggrin.gif Może ja to wyjaśnie na przykładzie smile.gif

Jakiś komentarz który powstał np. 20.08.2008- komentarz nr 1

Teraz chciałabym dodać następny komentarz

Jakiś komentarz który powstał 21.08.2008- komentarz nr 2

I teraz bym chciała aby ten komentarz nr 2 zastąpił komentarz nr 1 smile.gif Tak jakby się sam skasował i na jego miejsce wstawił się inny.
A teraz proszę o jeszcze jeden drugi pomocny skrypt smile.gif
1 komentarz- powstał 20.08
2 komentarz- powtsał 21.08
3 komentarz- powstał 22.08
itd.
50 komentarz- powstał 08.09
i jak będzie 50 to, żeby 15 najstarszych komentarzy się usunęło samo i było przez to miejsce na następne 15 rozumiecie ? Wyjaśniłam wam dobrze i mam nadzieję, że rozumiecie i mi pomożecie, bo ja nie potrafię napisać sama takiego skrytpu to jest narazie dla mnie za trudne ;(
Czekam na pomoc ;*
Puzi
No chyba tak snitch.gif
A Ty te komentarze chcesz przechowywać w pliku txt czy bazie MySQL??
paulina94x
Wolę w *.txt, a co nie da się? sad.gif
camikazee
Ogólnie strasznie zakręciłaś, do końca nie rozumiem istoty tego skryptu z komentarzami. Jeżeli chodzi o pliki tekstowe i kasowanie poprzedniego wpisu, wystarczy otworzyć plik z odpowiednim parametrem i nadpisać dane. Tylko po co tak? Lepiej już zbiera te komentarze w bazie danych i updatować je. Tylko określ bardziej po ludzku o co chodzi i bez błędów to pomożemy lub naprowadzimy.
paulina94x
Nie zakręciłam biggrin.gif Wytłumacze to pierwsze, bo mi ważniejsze.
Piszę gdzieś jeden komentarz i jak napiszę drugi to żeby tamten pierwszy się usunął i widniał tylko komentarz 2.
A ja dokladnie nie wiem jak się do bazy coś wprowadza itp. ;|
.radex
do otwierania pliku (a później jego zapisania za pomocą innej funkcji) używasz fopen()

http://pl2.php.net/manual/pl/function.fopen.php

gdzie drugi argument ma być 'w'.
piotrekkr
Możesz także użyć ułatwienia w postaci file_get_contents() lub file_put_contents()
paulina94x
Ale gdzie ja mam to wstawić czy coś?! Mam wstawić to?
[b]fopen[/b] ( string $tablica , string $w [, bool $użyj_include_path [, resource $kontekst ]] )
Ale gdzie? Nie rozumiem ;(
Shili
Ty chcesz pomocy czy szukasz "łosia" (łoś to ładne słowo i w żadnym wypadku o znaczeniu pejoratywnym winksmiley.jpg) który napisze to za Ciebie? Sprecyzuj, wtedy moderatorzy przeniosą w odpowiednie miejsce lub zostawią.

W manualu masz przykłady, spróbowałaś w ogóle jak działają? Jeśli nie to czas najwyższy!
paulina94x
Nie szukam łosia, ale ktoś mógłby mi pomóc bardziej precyzyjnie psiząc ;| Próbowałam, ale nie wiem o co chodzi... No ale jak nie macie ochoty pomóc noto nie musicie pisać sad.gif
Shili
Próbowałaś? Jeśli faktycznie próbowałaś przeczytać ze zrozumieniem stronę z manuala, to co najwyżej mogą Ci się wyświetlać jakieś błędy, w których na pewno Ci pomożemy.

Odnośnie fopen na przykład masz taką sekcję jak przykłady, a jak nie wiesz co znaczą te a, w, r itd to masz jeszcze listę możliwych trybów. W file_get_content faktycznie może być gorzej, bo nie masz przykładów. Ale Ty zastanawiałaś się nad fopen, które jest pięknie i przejrzyście wytłumaczone.

Spróbuj chociaż zamiast narzekać że nie umiesz. Zobaczysz, że to jest proste.
Otwórz plik z zapisanymi komentarzami to zaczniemy myśleć dalej.

@down
Domniemywać można, że Paulina to raczej koleżanka niż kolega winksmiley.jpg
kosmos
Oj koleżanko koleżanko ... przecież kosmici stworzyli google aaevil.gif

Tu masz wytłumaczone operacje na plikach wraz z przykładami. <-- by google.pl

Pozdrawiam
paulina94x
Dziękuję Kosmos smile.gif To mi pomaga bardziej zrozumieć smile.gif
A co do Shili! Ja jestem dziewczyną, nie żadnym chłopakiem biggrin.gif Właśnie sobie poprubóję to zrobić. Jak mi się nie uda, to wkleje wam mój skrypt komentarzy i mi pomożecie biggrin.gif Mam nadzieję smile.gif Ale jeszcze raz dzięki Kosmos. To jest napisane przejrzyście i wogóle.
Shili
Wiem że jesteś dziewczyną i dlatego tak napisałam tongue.gif
Kosmos najpierw napisał Kolego, kolego snitch.gif
Spykaj
<OT>

Ja też zawsze piszę "kolego" a potem muszę edytować, bo nie zauważyłem że piszę do niej, a nie do niego sleep.gif

</OT>
Suh
paulina94x, jeżeli masz z tym jeszcze jakiś problem to może to Ci pomoże.

Skoro zdecydowałaś się na używanie plików to na pewno przyda Ci się: fopen i inne funkcje spokrewnione do obsługi plików, a także taka funkcja jak explode() (która np. z takiego łańcucha "aa#bb" tworzy tablice dwuelementową, gdzie [0] == "aa" i [1] == "bb", zaś # - jest separatorem. więcej szczegółów pod adresem http://pl2.php.net/manual/pl/function.explode.php).

Teraz taki dość prosty alborytm :
1. wczytaj zawartość pliku:
  1. <?php
  2. $uchwyt = fopen($nazwa_pliku, "r");
  3. $dane = fread($uchwyt, filesize($nazwa_pliku);
  4. ?>


2. zapisz do tego samego pliku ten nowy komentarz i stara zawartosc np. w ten sposob:
  1. <?php
  2. $uchwyt = fopen($nazwa_pliku, "w");
  3. fwrite($uchwyt, $komentarz."#".$dane);
  4. ?>


Teraz natomiast, skoro chcesz aby np bylo tylko 15 najnowszych komentarzy, przydatne będzie użycie w/w funkcji explode().
Pomiędzy punktami 1. a 2. można np. zrobić coś takiego :
  1. <?php
  2. $dane = explode("#", $dane);
  3. $ile = count($dane);
  4.  
  5. if($ile >= 14)
  6. {
  7. // tutaj napisać odpowiednią pętle, która zadba aby do pliku trafiła zadana ilość 
    komentarz
  8. }
  9. else
  10. {
  11. // jeżeli liczba jest zmniejsza od zadanej to wtedy zapisujemy dane metodą podaną 
    w pkt. 2.
  12. }
  13. ?>


$ile jest w warunku większe lub równe 14, bo zakładam, że skoro w bazie ma być 15 komentarzy to oprócz tego który teraz dodajemy - ma być jeszcze 14 starszych.. gdyby było pytanie skąd ta liczba winksmiley.jpg

Pzdr
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.