Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php]Archiwum newsów na stronie
-Sunburn-
post 23.08.2007, 13:21:11
Post #1





Goście







Witam, mam taki oto skrypt:

  1. <?php
  2. $username="user";
  3. $password="pass";
  4. $db="db";
  5.  
  6. mysql_connect('host',$username,$password);
  7. mysql_select_db($db) or die("Nie odnaleziono bazy danych");
  8.  
  9.  
  10.  
  11. function pokaz_archiwum($i) 
  12. {
  13. $j = '2' * $i;
  14. $query = "SELECT id, nick, tresc FROM newsy ORDER by id DESC LIMIT $i,$j";
  15. $result = mysql_query($query) or die (mysql_error());
  16.  
  17. while($db = mysql_fetch_array($result)) {
  18. $nazwa = tnij(strip_tags($db[tresc]), 23);
  19. echo "<img src=\"gfx/strzalka.gif\" /> <a href=\"news,$db[id].html\"><strong>$tresc</strong></a><br />";
  20. }
  21.  
  22. }
  23.  
  24.  
  25. function tnij($tresc,$ile) {
  26.  
  27.  $licz = strlen($tresc);
  28.  if ($licz>=$ile)  {
  29.  $tnij = substr($tresc,0,$ile);
  30.  $txt = $tnij."..";
  31.  }
  32. else  {
  33.  $txt = $tresc;
  34. }
  35. return $txt;
  36. }
  37.  
  38.  
  39. ?>
  40.  
  41. <?php
  42. include "part1.php";
  43.  
  44.  
  45.  
  46. // ile pokazac
  47. pokaz_archiwum(10);
  48.  
  49. include "part2.php";
  50. ?>


News ma pokazywać ostatnie wpisy z bazy danych od najnowszego zaczynając. Niestety nie działa a jedyne co się pokazuje to dwa obrazki "strzalka.gif"

Z góry dzięki za pomoc

Pozdrawiam

Ten post edytował Sunburn 23.08.2007, 13:34:04
Go to the top of the page
+Quote Post
drPayton
post 23.08.2007, 13:38:29
Post #2





Grupa: Zarejestrowani
Postów: 890
Pomógł: 65
Dołączył: 13.11.2005
Skąd: Olsztyn

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


  1. <?php
  2. $nazwa = tnij(strip_tags($db[tresc]), 23);
  3. echo "<img src=\"gfx/strzalka.gif\" /> <a href=\"news,$db[id].html\"><strong>$tresc</strong></a><br />";
  4. ?>

1.
$nazwa, to treść, a w echo odwołujesz się do nieistniejącej zmiennej $tresc
Albo echo "(...)$nazwa(...)";
Albo echo "(...)$db[tresc](...)";
2.
$nazwa = tnij(strip_tags($db['tresc']), 23); w nawiasach indeksy asocjacyjne w apostrofach/cudzysłowach

Ten post edytował drPayton 23.08.2007, 13:40:50
Go to the top of the page
+Quote Post
-Sunburn-
post 23.08.2007, 13:54:21
Post #3





Goście







  1. <?php
  2. $username="user";
  3. $password="pass";
  4. $db="db";
  5.  
  6. mysql_connect('host',$username,$password);
  7. mysql_select_db($db) or die("Nie odnaleziono bazy danych");
  8.  
  9.  
  10.  
  11. function pokaz_archiwum($i) 
  12. {
  13. $j = '2' * $i;
  14. $query = "SELECT id, nick, tresc FROM newsy ORDER by id DESC LIMIT $i,$j";
  15. $result = mysql_query($query) or die (mysql_error());
  16.  
  17. while($db = mysql_fetch_array($result)) {
  18. $tresc = tnij(strip_tags($db['tresc']), 23);
  19. echo "<img src=\"gfx/strzalka.gif\" /> <a href=\"news,$db[id].html\"><strong>$tresc</strong></a><br />";
  20. }
  21.  
  22. }
  23.  
  24.  
  25. function tnij($tresc,$ile) {
  26.  
  27.  $licz = strlen($tresc);
  28.  if ($licz>=$ile)  {
  29.  $tnij = substr($tresc,0,$ile);
  30.  $txt = $tnij."..";
  31.  }
  32. else  {
  33.  $txt = $tresc;
  34. }
  35. return $txt;
  36. }
  37.  
  38.  
  39. ?>
  40.  
  41. <?php
  42. include "part1.php";
  43.  
  44.  
  45.  
  46. // ile pokazac
  47. pokaz_archiwum(3);
  48.  
  49. include "part2.php";
  50. ?>


Mam taki kod i przy 4 rekordach w bazie wyświetla mi tylko jeden (najstarszy)
Go to the top of the page
+Quote Post
drPayton
post 23.08.2007, 14:52:03
Post #4





Grupa: Zarejestrowani
Postów: 890
Pomógł: 65
Dołączył: 13.11.2005
Skąd: Olsztyn

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


  1. <?php
  2. function pokaz_archiwum($i) 
  3. {
  4. $j = '2' * $i;
  5. $query = "SELECT id, nick, tresc FROM newsy ORDER by id DESC LIMIT $i,$j";
  6.  
  7. (...)
  8.  
  9. pokaz_archiwum(3);
  10.  
  11. (...)
  12. ?>

czyli:
$i (offset, od pierwszego powyżej tej wartości) = 3,
$j (liczba rekordów do pokazania)= 2*3 = 6
A więc każesz mu pokazać 6 rekordów poczynając od pierwszego powyżej trzeciego. A że masz tylko 4 w bazie, to w efekcie daje jeden...
Podpis w komentarzu nad wywołaniem funkcji // ile pokazac jest błędny

Ten post edytował drPayton 23.08.2007, 14:58:02
Go to the top of the page
+Quote Post
-Sunburn-
post 23.08.2007, 16:33:35
Post #5





Goście







Aha.....źle myślałem ale już kapuje. Dzięki wielkie, pozdro
edit

Jeszzce jedno, z wyświetlanie mlinków jest OK, ale kiedy kliknę na niego to wyskakuje mi że nie ma takiej strony. Mam w bazie danych tabelę "newsy" oraz pola:id, nick, tresc

Newsy mam dodane ale myśle ze coś nie tak jest w :
  1. <?php
  2. echo "<img src=\"gfx/strzalka.gif\" /> <a href=\"news,$db[id].html\"><strong>$tresc</strong></a><br />";
  3. ?>
Pozdrawiam

Ten post edytował Sunburn 23.08.2007, 16:35:58
Go to the top of the page
+Quote Post
drPayton
post 24.08.2007, 10:06:56
Post #6





Grupa: Zarejestrowani
Postów: 890
Pomógł: 65
Dołączył: 13.11.2005
Skąd: Olsztyn

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


Być może. Żeby obsługiwać tego typu linki musisz mieć zaimplementowany odpowiedni parser URL, albo korzystać z odpowiednich dyrektyw .htaccess (tzw mod_rewrite - analizuje on adres i odpowiednio go przekształca i wtedy news,3.html może być równoznaczny z np. index.php?module=news&id=3). Jak jest u Ciebie to tylko Ty wiesz winksmiley.jpg
Skoro nie działa, to znaczy że jeden z powyższych jest błędnie napisany, bądź nie istnieje...
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: 12.07.2025 - 11:26