Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Skrypt zliczający ile osób przeczytało daną wiadomość, j.w
-początkujący-
post 31.07.2006, 18:48:12
Post #1





Goście







Witam. Mam do Was kolejne pytanko, związane z moim poprzednim postem.

Stworzyłem baze, tabele news:
  1. CREATE TABLE `news` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `tytul` varchar(30) NOT NULL DEFAULT '',
  4. `autor` text NOT NULL,
  5. `tresc` text,
  6. `data` varchar(50) NOT NULL DEFAULT '',
  7. PRIMARY KEY (`id`)
  8. );


mdco juz upomniał mnei aby do daty uzywac specjalnie do tego celu przeznaczonych typów danych, ale to nie o to chciałem zapytac.

Po pierwsze - chciałem się dowiedzieć jak sprawdzić ile razy nasza wiadomość była czytana ?
-----------------------------------------------------------------------------------------------------------

Po drugie jak zrobić aby można było rozwinąć temat? tzn chodzi mi o opcje "czytaj więcej" jeżeli wiadomość jest dłuższa i nie ma sensu umieszczać jej całej na głównej stronie... Aby była możliwość pokazania opcji więcej powinienem chyba zmienić układ tabeli na:
-----------------------------------------------------------------------------------------------------------

  1. CREATE TABLE `news` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `tytul` varchar(30) NOT NULL DEFAULT '',
  4. `autor` text NOT NULL,
  5. `tresc_skrocona` text,
  6. `tresc_rozwinieta` text,
  7. `data` varchar(50) NOT NULL DEFAULT '',
  8. PRIMARY KEY (`id`)
  9. );


tylko teraz jakie dać zapytanie? aby pokazała się opcja więcej?

  1. <?php
  2. if($tresc_rozwinieta > ''){
  3. print"$tresc_rozwinieta";
  4. }
  5. ?>


questionmark.gifquestionmark.gifquestionmark.gifquestionmark.gif?

i jakie dać zapytanie aby po kliknięciu w link ( lub przycisk ), dla przykładu "czytaj więcej" aby rozwinęła nam się ta konkretna wiadomość questionmark.gif

z góry dziekuje za wszelką pomoc.
Go to the top of the page
+Quote Post
rybik
post 31.07.2006, 18:58:50
Post #2





Grupa: Zarejestrowani
Postów: 99
Pomógł: 15
Dołączył: 29.07.2006

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


przekazywac w linku parametr plik.php?view=full albo plik.php?view=intro w zaleznosci od parametru pokazywac tylko intro jak dotychczas albo:
  1. <?php
  2. if ($tresc_rozwinieta != '') {
  3. print"$tresc_rozwinieta";
  4. }
  5. ?>

!='' jest zdecydowanie poprawniejsze od >'' w wypadku tekstu winksmiley.jpg
Go to the top of the page
+Quote Post
acztery
post 31.07.2006, 19:14:12
Post #3





Grupa: Zarejestrowani
Postów: 945
Pomógł: 7
Dołączył: 15.03.2005
Skąd: katowice

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


ad 1.

pewnie kazda wiadomość ma swoje id przekazywane w parametrze . wiec jak przelgadasz jakas wiadomosc i dajesz pewnie jakiegos selecta daj tez update a w strukturze tabeli dasz kolumne counter i ta kolumne uploadujesz dodajac wartosc wyzej np
  1. UPDATE news SET counter=counter+1 WHERE id=1


ad 2.

policz znaki w polu tresc w baze danych uzyj funkcji strlen" title="Zobacz w manualu php" target="_manual jezeli liczba newsa jest wieksza nisz np 500 znaków to pokaz link czytaj wiecej jezeli nie to nie .




  1. <? if ($tresc >= '500') { echo "czytaj wiecej" } ?>
Go to the top of the page
+Quote Post
Lee
post 31.07.2006, 19:46:38
Post #4





Grupa: Zarejestrowani
Postów: 319
Pomógł: 0
Dołączył: 11.04.2006
Skąd: Chojnów

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


warunek wygląda tak
  1. <?php
  2. if (empty($tresc_rozwinieta)) {
  3.  // coś tam
  4. }
  5. else {
  6.  // coś tam innego
  7. }
  8. ?>

oczywiście przewiduje, że masz już pobrane $tresc_rozwinieta z bazy danych

odnośnie licznika liczysz (masło maślane) pewnie na gotowca wiec go podam (sam jestem początkujący i bym tak chciał tongue.gif)
  1. <?php
  2. $id_artykulu = $_GET['id'];
  3. $query = mysql_query("SELECT * FROM news WHERE id='$id_artykulu'");
  4. while ($row = mysql_fetch_assoc($query)) {
  5.  $czytan = $row['czytan']; // oczywiście musisz mieć pole czytaj w swojej tabeli
  6. }
  7. $czytan += 1;
  8. $query("UPDATE news SET czytan='$czytan' WHERE id='$id_artykulu' LIMIT 1");
  9. ?>

powinno działać, pisane z palca

wiem, że można krócej i szybciej ale ja robie tak jak wyżej i działa winksmiley.jpg - może dlatego tak robie, że znam tylko podstawy sql tongue.gif

Ten post edytował Lee 31.07.2006, 19:51:44


--------------------
Nie pomagam w sprawach php na GG i PW od tego jest forum!
Go to the top of the page
+Quote Post
-początkujący-
post 31.07.2006, 20:06:51
Post #5





Goście







Dzięki sliczne winksmiley.jpg działa, ale jeszcze Was pomęcze winksmiley.jpg

ładnie pokazuje jezeli jest wiecej znakow itd. Tylko teraz winksmiley.jpg jak podlinkować ten komunikat czytaj więcej do konkretnego id ?
Go to the top of the page
+Quote Post
acztery
post 31.07.2006, 20:12:55
Post #6





Grupa: Zarejestrowani
Postów: 945
Pomógł: 7
Dołączył: 15.03.2005
Skąd: katowice

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


zrob sobie nowy plik np pages.php

a w nim

  1. <?php
  2. $id_artykulu = $_GET['id'];
  3. $query = mysql_query("SELECT * FROM news WHERE id='$id_artykulu' limit 1");
  4.  
  5. while ($row = mysql_fetch_assoc($query)) {  
  6.  
  7. echo $row['czytan']; 
  8.  
  9. }
  10. ?>



kolega wyzej zrobil blad i jest zle empty tzn czy jest puste a nie ma sprawdzac czy jest puste ale czy jest wystarczajaca dlugie....

link
  1. <? if ($tresc >= '500') { echo "<a href=pages.php?id=1>czytaj wiecej</a>"; } ?>


Ten post edytował acztery 31.07.2006, 20:14:23
Go to the top of the page
+Quote Post
-Gość_poczatkujacy_*-
post 31.07.2006, 20:24:34
Post #7





Goście







p.s. jakiego typu dac pole czytan ? char? czy moze byc text ?
Go to the top of the page
+Quote Post
Lee
post 31.07.2006, 20:35:39
Post #8





Grupa: Zarejestrowani
Postów: 319
Pomógł: 0
Dołączył: 11.04.2006
Skąd: Chojnów

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


czytań to raczej będą same liczby więc proponuje int winksmiley.jpg


--------------------
Nie pomagam w sprawach php na GG i PW od tego jest forum!
Go to the top of the page
+Quote Post
-Gość_poczatkujacy_*-
post 31.07.2006, 21:12:42
Post #9





Goście







No to teraz chcialbym podziękować winksmiley.jpg bo wszystko ładnie, ślicznie działa winksmiley.jpg. Jak wymyśle coś nowego na pewno Was pomecze winksmiley.jpg. THX acztery & Lee & rybik exclamation.gif!

pozdrowka
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 31.07.2025 - 07:52