Co ja piszę! zły kod! teraz działa, lecz bez skutku.*
Nadal mam X postów, tutaj mam już problem jak to okodzić w PHP, te wyświetlanie, bo jak wspominałeś w HTML nie da się.
Co ja piszę! zły kod! teraz działa, lecz bez skutku.*
Nadal mam X postów, tutaj mam już problem jak to okodzić w PHP, te wyświetlanie, bo jak wspominałeś w HTML nie da się.
Podaj komunikat błędu, w poprzednim poście obiekt PDO był z zmiennej $dbh więc może zmień $pdo na $dbh?
Ogólnie mniej zaawansowane edytory mają problemy z HEREDOC-ami, więc z tego może wynikać brak kolorowania.
To znaczy teraz już nie mam błędów, przerobiłem kod tak jak mi podpowiedziałeś. Teraz to kwestia działania tego PHP w index.php, który ma za zadanie wyświetlać ten tekst, czyli to “echo” lecz nie wiem jak to zastosować.
<?php require __DIR__.'/includes/functions.php' ?>
<html>
<head>
<title>Welcome to news channel</title>
<link rel="stylesheet" type="text/css" href="design/style.css">
</head>
<body>
<div class="container">
<div class="news-box">
<div class="news">
<?php
// get the database handler
$dbh = connect_to_db(); // function created in dbconnect, remember?
// Fecth news
$news = fetchOnPage($dbh, isset($_GET['page']) ? intval($_GET['page']) : 1);
?>
<?php if ( $news && !empty($news) ) :?>
<?php foreach ($news as $key => $article) :?>
<h2><a href="read-news.php?newsid=<?= $article->news_id ?>"><?= stripslashes($artic le->news_title) ?></a></h2>
<p><?= stripslashes($article->news_short_description) ?></p>
<span>published on <?= date("M, jS Y, H:i", $article->news_published_on) ?> by <?= stripslashes($article->news_author) ?></span>
<?php endforeach?>
<?php endif?>
</div>
</div>
<div class="footer">
phpocean.com © <?= date("Y") ?> - all rights reserved.
</div>
</div>
</body>
</html>
W porównaniu do tego jak tutaj masz to wykonane niema potrzeby korzystać z heredoc-ów - bałem się, że zrobisz coś takiego:
<?= '<h2>'. $tytul.'</h2>'.$tresc.'<p>Autor: '. $autor .' dnia '. $data .'</p>';
albo jeszcze gorzej:
<?= "<h2>$tytul</h2>$tresc<p>Autor: $autor dnia $data</p>";
Przy takim zapisie jaki masz zastosowany jest ok, tj:
<?php foreach ($news as $key => $article) :?>
<h2><a href="read-news.php?newsid=<?= $article->news_id ?>"><?= stripslashes($article->news_title) ?></a></h2>
<p><?= stripslashes($article->news_short_description) ?></p>
<span>published on <?= date("M, jS Y, H:i", $article->news_published_on) ?> by <?= stripslashes($article->news_author) ?></span>
<?php endforeach?>
Jedyne do czego bym się przyczepił to brak semicolów na końcu zakończeń instrukcji, ale ogólnie jest ok.
Chwilka … jak nie heredocki to zwykły HTML? Wtedy nie mam połączenia z PHP i nie widzę mojego limitu, ahh trafił Ci się nieznośny ludek. Readnews.php odpowiada za wyświetlanie treści ale po kliknięciu w tytuł, a ja ten tytuł muszę gdzieś dodać.
Podobno najwydajniejsze jest wplatanie PHP w kod HTML - od łączenia stringów na pewno (chyba wszystko jest szybsze), ale czy od heredoc-ów to przyznam się szczerze nigdy nie sprawdzałem.
Zasadniczo w rzeczach, które robię stosuje je zależnie od kontekstu, jeśli plik jest templatką to wplatam PHP, jeśli natomiast jest to plik zasadniczo w kodem i tylko chcę wpleść kawałek HTML-a to wciskam go heredoc-iem.
Musisz mi dokładnie wytłumaczyć na czym utkwiłeś.
Nie znam się na tym całym PHP więc powiem jak myślę, mój cel, a aktualnie to na czym utkwiłem to właśnie dodanie tekstu do strony głównej, gdzie ten tekst będzie tytułem, zaś nagłówek będzie przedstawiał skrót treści newsa, a po kliknięciu w niego przeniesie się do strony ( czyli readnews.php) z całym tekstem. Jak już wspominałem, chodzi mi o podobną technikę działania jak na stronie np. dobreprogramy.pl. W moim przypadku chyba lepiej się sprawdzi wplecenie PHP w kod HTML.