Skocz do zawartości

Pełna treść news'a jak zrobić?


RoyMaster
 Udostępnij

Rekomendowane odpowiedzi

Witam próbuję zrobić własnego cms i idzie dość dobrze. Ale stanąłem na jednej rzeczy. A mianowicie mam plik pokaz.php w którym jest taki oto kod.

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>TEST</title>
<link rel="stylesheet" type="text/css" href="style.css" media="all">

</head>

<div class="top-background">

</div>

<div id="container">

<div class="top-nav">

<ul id="navmenu-h">

<ul>

<li><a href="#">Strona Główna</a></li>

<li><a href="#">Forum</a></li>

<li><a href="#">Regulamin</a></li>

<li><a href="#">Galeria</a></li>

<li><a href="#">Sklep</a></li>

<li><a href="https://localhost/register.php">Rejestracja</a></li>

</ul>

</ul>

</div>

<div class="logo">

</div>

<div id="main-background">

<?
$uchwyt=mysql_connect('localhost','test','rowerek20')
or die('Nieudane połączenie z bazą danych...');
mysql_select_db('rejestracja')
or die('Nie udało się wybrać bazy danych...');
?>

<div class="news">

<div class="news-title">

<?

$link=mysql_query("SELECT * FROM news ORDER BY id desc");

while($wiersz=mysql_fetch_array($link))
{
echo $wiersz['tytul'];
}

?>

</div>

<div class="news-background">

<?

$link=mysql_query("SELECT * FROM news ORDER BY id desc");

while($wiersz=mysql_fetch_array($link))
{
echo $wiersz['data'];
echo ')';
echo "<br>\n";
echo $wiersz['tresc'];
echo "<br>\n";
echo $wiersz['pelnatresc'];
echo "<br>\n";
}

mysql_close($uchwyt);
?>

</div>

</div>

</div>

</div>


</html>

Plik ten służy do pokazania całej treści news'a po kliknięciu na tytuł na stronie głównej. Wszystko jest okej gdy kliknę na tytuł przenosi tutaj. Przykładowy link

https://localhost/pokaz.php?tytul=TEST123

Gdzie TEST123 to tytuł news'a. Niestety nie wiem jak sobie poradzić z tym aby pokazywał konkretny news a nie pokazywał wszystkie jakie są w danej tabeli. Zapewne chodzi o tą funkcję

while($wiersz=mysql_fetch_array($link))

Lecz jak ją usunę to wyskakują errory. Może ktoś z was mi pomoże?

Katalog filmów online https://www.boxfilm.pl/

Odnośnik do komentarza
Udostępnij na innych stronach

$link=mysql_query("SELECT * FROM news ORDER BY id desc");

To wybiera z bazy wszystkie artykuły i sortuje je w porządku malejącym.

By wybrać jeden artykuł musisz dodać jakiś warunek, np. WHERE id=34 (o ile masz w tabeli pole id) i usunąć wówczas zbędne sortowanie.

Źle rozwiązujesz problem.

By wyświetlić tytuł pytasz bazę o tytuły (znaczy pytasz o wszystko, ale chodzi o fakt zapytania w celu uzyskania tylko tytułu), potem znowu pytasz bazę o resztę artykułu (znowu pytając o wszystkie dane w tabeli, w tym. m.in. ponownie o tytuł, o który pytałeś już prędzej).

Wywołaj zapytanie raz, przypisz pobrane dane do zmiennych i działaj na tych zmiennych potem drukując treść strony.

Odnośnik do komentarza
Udostępnij na innych stronach

Taką dłubaniną PHP i HTML w jednym za daleko nie zajedziesz !

Zainteresuj się modelem MVC i gotowymi frameworkami.

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

$link=mysql_query("SELECT * FROM news ORDER BY id desc");

To wybiera z bazy wszystkie artykuły i sortuje je w porządku malejącym.

By wybrać jeden artykuł musisz dodać jakiś warunek, np. WHERE id=34 (o ile masz w tabeli pole id) i usunąć wówczas zbędne sortowanie.

Źle rozwiązujesz problem.

By wyświetlić tytuł pytasz bazę o tytuły (znaczy pytasz o wszystko, ale chodzi o fakt zapytania w celu uzyskania tylko tytułu), potem znowu pytasz bazę o resztę artykułu (znowu pytając o wszystkie dane w tabeli, w tym. m.in. ponownie o tytuł, o który pytałeś już prędzej).

Wywołaj zapytanie raz, przypisz pobrane dane do zmiennych i działaj na tych zmiennych potem drukując treść strony.

Newsy posiadają id, mógłbyś napisać jak użyć tego warunku? Mam do

$link=mysql_query("SELECT * FROM news ORDER BY id desc");

dodać na końcu WHERE?

Katalog filmów online https://www.boxfilm.pl/

Odnośnik do komentarza
Udostępnij na innych stronach

Zdecydowanie postaw na MVC i Frameworki ... jest ich sporo np Zend, Symphony, Kohana, CodeIgniter i raczej z tych bym wybierał bo są dość popularne więc i dokumentacja jest niezła i pomoc w necie łatwiej znaleźć w razie problemów. Każdy z nich ma też odpowiednie biblioteki do komunikacji z bazą danych które sporo ułatwiają.

Jeśli szukasz

firmy z okolic Krotoszyna może znajdziesz ją tutaj. A jeśli potrzebna Ci strona internetowa pytaj pod tym adresem. Może też chcesz dowiedzieć się kilku informacji o bolończykach.

Odnośnik do komentarza
Udostępnij na innych stronach

No to na głównej masz link do strony z artykułem, w którym to linku przekazujesz np. parametr id.

Jeśli chcesz przekazywać tytuł (jak w przykładzie w pierwszym poście: hxxp://localhost/pokaz.php?tytul=TEST123), to wówczas musisz tak zmodyfikować zapytanie, by wybierał unikalny wpis w tabeli na podstawie tytułu. Ale to nie jest najlepsze rozwiązanie, bo tytuły przecież mogą nie być unikalne. mogą mieć znaki specjalne, itd.

Innymi słowy zrób sobie link: hxxp://localhost/pokaz.php?id=34 na głównej, pobierz tenże id z $_GET, przeprowadź walidację i wykonaj zapytanie.

A zabawę w przepisywanie linków podejmiesz w wersji 2 tego cmsa ;)

(hxxp celowo, by nie zamieniało na luste linki).

Edytowane przez ttah
Odnośnik do komentarza
Udostępnij na innych stronach

Dobra z tym sobie już poradziłem. Dałbym wam lajki ale nie mogę dam jutro. Mam kolejne pytanie. Chcę dodać możliwość komentowanie danego wpisu. Aktualnie mam taki kod

{
 echo '<form method="POST" action="pokaz.php?id=dopisz">
   <table border="0" width="100%">
	 <tr>
	   <td>Nick:</td>
	   <td><input type="text" name="nick" size="20"></td>
	 </tr>
	 <tr>
	   <td>Treść: </td>
	   <td><textarea rows="5" name="tresc" cols="32"></textarea></td>
	 </tr>
	 <tr>
	   <td> </td>
	   <td><input type="submit" value="DODAJ"></td>
	 </tr>
   </table>
 </form>';
 }

 if(isset($_GET['id']) && $_GET['id']=='dopisz')
 {
 $nick=$_POST['nick'];
 $tresc=$_POST['tresc'];
 $id = $_GET['id'];
 $data=date('d.m.Y, H:i');
 mysql_query("INSERT INTO komentarze VALUES(0,'$nick','$tresc','$data')");
 }

Znając życie za dobry to on nie jest ale mniejsza.

Komentarz dodaje się do bazy danych o nazwie komentarze ale ze swoim id. Chciałbym aby pobierał on id newsa po czym aby przy wyświetlaniu pokazywały się tylko komentarze od danego news.

Katalog filmów online https://www.boxfilm.pl/

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
 Udostępnij

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności