Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Skrypt zliczający ile osób przeczytało daną wiadomość
Forum PHP.pl > Forum > Przedszkole
początkujący
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.
rybik
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
acztery
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" } ?>
Lee
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
początkujący
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 ?
acztery
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>"; } ?>
Gość_poczatkujacy_*
p.s. jakiego typu dac pole czytan ? char? czy moze byc text ?
Lee
czytań to raczej będą same liczby więc proponuje int winksmiley.jpg
Gość_poczatkujacy_*
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
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.