Skocz do zawartości

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


RoyMaster

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).

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

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • 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