Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Php - System bardzo prostych newsów.
Forum PHP.pl > Forum > Przedszkole
Owneds
Witam serdecznie!
Mam problem z wyświetlaniem poprawnie newsów.
Chciałbym aby były one wyświetlane dokładnie tak samo, jak napisane są w bazie MYSQl.
Przykład obecnego newsa(MySQL):
MySQL Image
Oraz newsa wyświetlanego na stronie:
News na stronie

Jak widać, na stronie nie ma wcięć, oddzieleń akapitów spacją, kawałka tekstu na środku, jak to jest zapisane w MySql. Wszystko zapisane jest w jednym ciągu. Potrafi ktoś to naprawić, aby było poprawnie skonstruowane? smile.gif
Tutaj oczywiście podaje kod, jakiego używam do obecnego wyświetlenia:
  1. <?php
  2. include("polacz.php");
  3. $query = mysql_query("select * from news where id='".(int)$_GET['id']."'");
  4. $rekord = mysql_fetch_array($query);
  5. echo '<h1>'.$rekord[1].'</h1> Autor: '.$rekord[3].'<br/>Data: '.$rekord[2].'<p>'.$rekord[4].'</p>';
  6. ?>
Spawnm
Daj w <pre></pre>, ew. zobacz nl2br()
Hpsi
<pre></pre> bym nie radził =)

zrób do $rekord[4], tak jak polecił mój poprzednij
  1. nl2br($rekord[4])
Owneds
Dziękuje panowie, za szybką odpowiedź. smile.gif

Już jest prawie idealnie, lecz zostały jeszcze dwie kwestie. smile.gif
Tekst Suspendisse viverra egestas mauris non pulvinar!, nie jest na środku, oraz brakuję wcięć na początku każdego akapitu. Jakieś pomysły?

Nowy tekst
Spawnm
No to w takim wypadku pozostaje <pre>
a w przyszłości zaimplementuj sobie jakieś bbcode.
Owneds
Dobra, to na razie zostawię w spokoju. Bbcode dam na końcu. smile.gif

Teraz mam pytanko, dalej odnośnie newsów.
Przerabiam w bardzo znacznym stopniu szablon dla początkujących. Dodałem już sobie boczne menu, oraz div z newsami.
Chciałbym aby po kliknięciu Czytaj dalej, strona rozciągnęła się w dół tak, żeby nie przekierowywało na np: news.php?id=5, tylko tego całego newsa wyświetliło na tej samej stronie.
Tak to teraz wygląda: http://img823.imageshack.us/i/naphp4.png/
Przykład:
Klikam w art3 na Czytaj więcej, to art2 idzie w dół tak, żeby pomieścić całego newsa zawartego w Art3, a poniżej oczywiście dalej jest Art2 i Art1. Da się takie coś wykonać? Jeżeli tak to jeszcze bym prosił, że po rozwinięciu tego newsa dać jakiś odnośnik coś w stylu "Powróć do pierwotnego rozmiaru przed rozwinięciem newsa"
Oraz mój 'nowy' kod:
  1. <?php
  2. include("polacz.php");
  3. $query = mysql_query("select * from news order by id desc limit 0,5");
  4. while($rekord = mysql_fetch_array($query))
  5. {
  6. include("skrot.php");
  7. $naz .= '<b><h3>'.$rekord[1].'</h3></b>Autor: '.$rekord[3].' - '.$rekord[2].'<p>'.substr($rekord[4], 0, 150).''.$kr.'</p><a href="news.php?id='.$rekord[0].'">czytaj wiecej...</A>';
  8. }
  9. echo '<ul>'.$naz.'</ul>';
  10. ?>
  11.  


Ma ktoś jakiś pomysł? Tak by było najwygodniej, bo nie potrafię przekierować użytkownika na np: news.php?id=5, żeby dalej był mój styl strony itd..., tylko ze zmienionym divem na aktualnego pełnego newsa zamiast trzech najnowszych skrótowych, bo tak jak normalnie przekieruje to jest pusta, biała strona z samym pełnym newsem.

Spawnm
Poczytaj o Ajax i jquery.
Owneds
To ma inne pytanko. Jak zrobić żeby jak klikne czytaj dalej, to otwierał się news na xxx.pl/news?id=5, ale dalej była moja stronka, tylko ten div w którym są cztery newsy to był jeden ale pełna wersja, a nie sam skrót tego.
Gość
Poczytaj o Ajax i jquery. sleep.gif
Hpsi
Możesz to zrobić za pomocą ajaxu (polecam również jak poprzednicy jquery) ale możesz zrobić to też na zasadzie prostego js

wrzucasz w blog całą zawartość nowości, lecz na dalszą cześć dodajesz np <p style="display:none;" id="nowosc_4">tekst tekst tekst </p> i za pomocą js ustawiasz po kliknieciu czytaj wiecej na display:block;

kolejna opcją którą terotycznie możesz zrobić, to w pobieraniu wyników, sprawdzać jeśli id nowosci = tej co klikneles, dodajesz pole z tekstem - strona ci się odswierza a w nowości o konrektnym id wyswietla się tekst
np rozwiazanie

- zalozenie:
1: link do czytaj wiecej: index.php?a=czytaj&id=5
[php]
$result = mysql_query('select * from nowosci ');
while($r = mysql_fetch_array($result))
{
//wyswietlanie nowosci
// ......
// wyswietlanie tekstu (KROTKIEGO)
if($r['id'] == $_GET['id'])
// wyswietl rowniez dlugi tekst
}
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.