Strona główna + Forum = współpraca
#31
Napisano 03 marzec 2010 - 01:57
#32
Napisano 20 marzec 2010 - 15:22
Użytkownik DawPi dnia 03 marzec 2010 - 01:57 napisał
Witam, miałem problemy z serwerem co opóźniło mnie o ładne 2 tygodnie, jednak powyższy problem został rozwiązany:
SELECT t.title, p.post FROM posts p JOIN topics t ON p.topic_id = t.tid WHERE t.forum_id IN (14) AND p.author_id IN (2)"
Wyświetl tytuły i posty z kategorii o id 14 i tylko autorstwa użytkownika id 2
A teraz napiszę nowy temat, tego proszę jeszcze nie zamykać, gdyż będę kontynuował wątek zmiennych.
Pozdrawiam
#33
Napisano 21 marzec 2010 - 00:33
Kod odpowiadający za wyświetlenie podkategorii z kategorii Artykuły, co w rezultacie tworzy menu. Ułożyłem je w identyczny sposób w jaki były wyświetlane na forum oraz przypisałem im ich ID(kategorii)
<?php
//Baza danych
include"inc/mysql_access.php";
//Wyświetlanie menu
$mysql = "SELECT name, id FROM forums WHERE parent_id IN (4) ORDER BY position ASC";
$wykonaj = @mysql_query($mysql) or die('<br />Niepoprawny wiersz bądź kolumna<br />'.mysql_error());
echo '<div id="nav">
<dl>
<dt>Kategorie</dt>';
while ($wiersz = mysql_fetch_row($wykonaj))
{
echo('<dd><A HREF=\"index.php?id='.$wiersz[1].'\">'.$wiersz[0].'</A></dd>');
}
echo '</dl>
</div>';
mysql_close($connection);
?>Miło byłoby gdyby odnośniki te (po kliknięciu odpowiedniego odnośnika) wyświetlały w centrali strony listę odpowiednich tematów.
Sztywny proces wyświetlania postów+tytuł znam, oto kod:
Wyświetl tytuły i posty z kategorii o id 14 i tylko autorstwa użytkownika id 2
<?php
include"inc/mysql_access.php";
//Wyświetlanie menu
$mysql = "SELECT t.title, p.post FROM posts p JOIN topics t ON p.topic_id = t.tid WHERE t.forum_id IN (11) AND p.author_id IN (2)";
$wykonaj = @mysql_query($mysql) or die('<br />Niepoprawny wiersz bądź kolumna<br />'.mysql_error());
echo '<table>';
while ($wiersz = mysql_fetch_row($wykonaj))
{
echo '<tr><td style="background: #1d3652; padding: 5px 5px 5px 5px; color: #fff; font-weight: bold;">'. parsebbcode($wiersz[0]) .'</td></tr>' . '<tr><td style="background: #e4ebf2; padding: 5px 5px 5px 5px;">'. parsebbcode($wiersz[1]) .'</td></tr>';
}
echo '</table>';
mysql_close($connection);
?>Ja natomiast jestem w takim miejscu, że stoję na środku pola i nie wiem w którą stronę pójść, gdyż i tak wracam w to samo miejsce.
Co mam zrobić aby w centrali strony była wyświetlana zawartość odpowiednich odnośników, pobierać id z odnośnika, zastosować funkcje $_GET, której nie potrafię zastosować w przypadku pętli, jak i funkcji if. Wiem, że można rozpisać drugi kod, tylko, że nie wiem nawet za co się zabrać.
#34
Napisano 21 marzec 2010 - 12:53
#35
Napisano 21 marzec 2010 - 14:26
Użytkownik DawPi dnia 21 marzec 2010 - 12:53 napisał
Bez paniki, to się zdarza najlepszym!
W tym temacie w pierwszym poście opisuję, to co zamierzam zrobić:
Zrobiłem dynamiczne menu tak, że wyświetla subkategorię z kategorii Artykuły, a wygląda to tak:
wwwmenuitp.jpg (170,92 KB)
Ilość pobrań: 4
Pierwszy kod odpowiada za wyświetlanie menu, pobiera z bazy danych subkategorie z działu artykuły i wyświetla je w postaci listy (ułożonej identycznie jak na forum) dzięki czemu przypisałem im również ich (ID) - w efekcie otrzymuję menu - pozostało zrobić by działało.
Działało w sposób taki, że jeżeli kliknę odpowiedni link w menu, to w środkowej części strony zostanie wyświetlona lista tematów z tej podkategorii, coś jak z menu w case, switch, GET_id, tyle, że tutaj wszystko jest w bazie danych a nie w plikach.
Drugi kod, odpowiada za sztywne wyświetlanie listy tematów z postami - dodaję go jako wzór, bądź przykład, chodzi o to, że można go zmodyfikować, jeżeli kliknę w menu odpowiedni link, który posiada odpowiednie ID, wtedy zmienna ta jest przekazywana do miejsca gdzie wyświetlany ma być spis tematów, i w efekcie wyświetla ten odpowiedni spis. Najprościej rzec ujmując kliknięcie odpowiedniego odnośnika w menu, który posiada unikalne id, przekazuję jego id do
$mysql = "SELECT t.title, p.post FROM posts p JOIN topics t ON p.topic_id = t.tid WHERE t.forum_id IN (11) AND p.author_id IN (2)";
t.forum_id IN (11)<== miejsca między te 2 nawiasy, dzięki czemu kliknięcie odpowiedniego odnośnika zmienia, tą wartość wklepując w nią odpowiednie ID odnośnika, który został kliknięty. Dzięki czemu wyskakuję lista odpowiednich tematów z odpowiedniego odnośnika.
Użytkownik Bellum edytował ten post 21 marzec 2010 - 14:30
#36
Napisano 21 marzec 2010 - 14:38
t.forum_id IN (intval($this->request['fid']))
Oczywiście wyżej musisz tę zmienną sprawdzić, 'zabezpieczyć' etc. A w linku dodawaj zmienną &fid=X.
#37
Napisano 21 marzec 2010 - 15:17
Użytkownik DawPi dnia 21 marzec 2010 - 14:38 napisał
t.forum_id IN (intval($this->request['fid']))
Oczywiście wyżej musisz tę zmienną sprawdzić, 'zabezpieczyć' etc. A w linku dodawaj zmienną &fid=X.
A mogę prosić o starszą wersję, gdyż w tym przypadku wyskakuję mi błąd:
Fatal error: Using $this when not in object context in D:\Program Files\WebServ\httpd\db\index.php on line 27
Prosiłbym coś w kierunku bez $this
Skrypt menu.php wygląda tak(poniżej) i zaznaczam, że jest on includowany do index.php:
Zmiany, to:
echo('<dd><A HREF="index.php?&fid='.$wiersz[1].'">'.$wiersz[0].'</A></dd>');Wiersz[1] odpowiada za przydzielanie subkategorii ich własnemu ID.
<?php
//Baza danych
include"inc/mysql_access.php";
//Wyświetlanie menu
$mysql = "SELECT name, id FROM forums WHERE parent_id IN (4) ORDER BY position ASC";
$wykonaj = @mysql_query($mysql) or die('<br />Niepoprawny wiersz bądź kolumna<br />'.mysql_error());
echo '<div id="nav">
<dl>
<dt>Kategorie</dt>';
while ($wiersz = mysql_fetch_row($wykonaj))
{
echo('<dd><A HREF="index.php?&fid='.$wiersz[1].'">'.$wiersz[0].'</A></dd>');
}
echo '</dl>
</div>';
mysql_close($connection);
?>W index.php umieściłem następujący kod:
Zmiany, to:
$mysql = "SELECT t.title, p.post FROM posts p JOIN topics t ON p.topic_id = t.tid WHERE t.forum_id IN (intval($this->request['fid'])) AND p.author_id IN (2)";
<?php
include"inc/mysql_access.php";
//Wyświetlanie menu
$mysql = "SELECT t.title, p.post FROM posts p JOIN topics t ON p.topic_id = t.tid WHERE t.forum_id IN (intval($this->request['fid'])) AND p.author_id IN (2)";
$wykonaj = @mysql_query($mysql) or die('<br />Niepoprawny wiersz bądź kolumna<br />'.mysql_error());
echo '<table>';
while ($wiersz = mysql_fetch_row($wykonaj))
{
echo '<tr><td style="background: #1d3652; padding: 5px 5px 5px 5px; color: #fff; font-weight: bold;">'. parsebbcode($wiersz[0]) .'</td></tr>' . '<tr><td style="background: #e4ebf2; padding: 5px 5px 5px 5px;">'. parsebbcode($wiersz[1]) .'</td></tr>';
}
echo '</table>';
mysql_close($connection);
?>
#38
Napisano 21 marzec 2010 - 15:30
t.forum_id IN (intval($_GET['fid']))
#39
Napisano 21 marzec 2010 - 15:33
#40
Napisano 21 marzec 2010 - 15:47
#41
Napisano 21 marzec 2010 - 15:52
Użytkownik DawPi dnia 21 marzec 2010 - 15:47 napisał
index.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<link href="css/scss.css" rel="stylesheet" type="text/css" />
<link href="css/niftyCorners.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/niftycube.js"></script>
<script type="text/javascript" src="js/niftyLayout.js"></script>
</head>
<body>
<div id="logo">Awangarda Niedźwiedzia</div>
<div id="menu">W dniu dzisiejszym nastąpi <a href="#">Terefere</a> mmm niedźwiedź. <-- pasek do informacji
</div>
<div id="tpage">tutututututu
</div>
<?php include_once"inc/menu.php" ?> #### Tu jest includowane to menu#######
<div class="page_header">heheheheh
</div>
<div class="page">
<?php
function parsebbcode($text)
{
$array=array(
'[b]' => '<b>',
'[/b]' => '</b>',
'[i]' => '<i>',
'[/i]' => '</i>',
'[u]' => '<u>',
'[/u]' => '</u>',
'[center]' => '<center>',
'[/center]' => '</center>',
'[big]' => '<h1>',
'[/big]' => '</h1>',
'[nl]' => '<br>',
'[size=(.*?)]' => '<span style="font-size:(.*?)px\">',
'[/size]' => '</span>',
//Akapit
'[indent]' => '<p style="margin: 50px; margin-top: 0px; margin-bottom: 0px;">',
'[/indent]' => '</p>',
//Stopka artykułu
'[info]' => '<p style="margin: 50px; margin-top: 0px; margin-bottom: 0px;">',
'[/info]' => '</p>',
);
$newtext = str_replace(array_keys($array), array_values($array), $text);
return $newtext;
}
include"inc/mysql_access.php";
//Wyświetlanie artow
$mysql = "SELECT t.title, p.post FROM posts p JOIN topics t ON p.topic_id = t.tid WHERE t.forum_id IN (intval($_GET['fid'])) AND p.author_id IN (2)";
$wykonaj = @mysql_query($mysql) or die('<br />Niepoprawny wiersz bądź kolumna<br />'.mysql_error());
echo '<table>';
while ($wiersz = mysql_fetch_row($wykonaj))
{
echo '<tr><td style="background: #1d3652; padding: 5px 5px 5px 5px; color: #fff; font-weight: bold;">'. parsebbcode($wiersz[0]) .'</td></tr>' . '<tr><td style="background: #e4ebf2; padding: 5px 5px 5px 5px;">'. parsebbcode($wiersz[1]) .'</td></tr>';
}
echo '</table>';
mysql_close($connection);
?>
</div>
<?php include_once"inc/add_art.php" ?>
<?php include_once"inc/footer.php" ?>oraz menu.php
<?php
//Baza danych
include"inc/mysql_access.php";
//Wyświetlanie menu
$mysql = "SELECT name, id FROM forums WHERE parent_id IN (4) ORDER BY position ASC";
$wykonaj = @mysql_query($mysql) or die('<br />Niepoprawny wiersz bądź kolumna<br />'.mysql_error());
echo '<div id="nav">
<dl>
<dt>Kategorie</dt>';
while ($wiersz = mysql_fetch_row($wykonaj))
{
echo('<dd><A HREF="index.php?&fid='.$wiersz[1].'">'.$wiersz[0].'</A></dd>');
}
echo '</dl>
</div>';
mysql_close($connection);
?>
Użytkownik Bellum edytował ten post 21 marzec 2010 - 16:00
#42
Napisano 21 marzec 2010 - 16:13
WHERE t.forum_id IN (intval($_GET['fid']))
Zamień na:
WHERE t.forum_id IN (" . intval($_GET['fid']) . ")Nie myślisz.
#43
Napisano 21 marzec 2010 - 16:25
Użytkownik DawPi dnia 21 marzec 2010 - 16:13 napisał
WHERE t.forum_id IN (intval($_GET['fid']))
Zamień na:
WHERE t.forum_id IN (" . intval($_GET['fid']) . ")Nie myślisz.
hmm, racja, próbowałem właśnie przez ten czas wkładać to w różnego rodzaju nawiasy itp. by zadziałało (gdyż domyśliłem się, że błąd leży gdzieś w tych ustawieniach), raz zmieniało w centrali na numerki jakie klikałem w menu
Super
#44
Napisano 21 marzec 2010 - 16:56
#45
Napisano 21 marzec 2010 - 17:31
Użytkownik DawPi dnia 21 marzec 2010 - 16:56 napisał
Cóż, nie
Chciałbym teraz, dodać parametr if, else by po wejściu na stronę wyświetliła się domyślnie strona startowa, zrobiłem tak:
include"inc/mysql_access.php";
//Wyświetlanie artów
$mysql = "SELECT t.title, p.post FROM posts p JOIN topics t ON p.topic_id = t.tid WHERE t.forum_id IN (" . intval($_GET['fid']) . ") AND p.author_id IN (2)";
$wykonaj = @mysql_query($mysql) or die('<br />Niepoprawny wiersz bądź kolumna<br />'.mysql_error());
echo '<table>';
while ($wiersz = mysql_fetch_row($wykonaj))
{
if ($fid > 0)
{
print '<tr><td style="background: #1d3652; padding: 5px 5px 5px 5px; color: #fff; font-weight: bold;">'. parsebbcode($wiersz[0]) .'</td></tr>' . '<tr><td style="background: #e4ebf2; padding: 5px 5px 5px 5px;">'. parsebbcode($wiersz[1]) .'</td></tr>';
print '</table>';
}
else
{
include"page/kolory.php";
}
}
mysql_close($connection);
?>
</div>Jeżeli $fid, jest większe od 0, to wyświetla odpowiednie artykuły. Chciałbym natomiast by jeżeli $fid nie został wybrany (czyli wszedłem sobie po prostu na moją stronę i nie klikałem w menu), to wyświetla includowaną stronę. Wiem, że chodzi o elseif jednak nie wiem jaki nadać mu parametr.
Udostępnij ten temat:
Podobne tematy
| Temat | Forum | Autor | Podsumowanie | Ostatni post | |
|---|---|---|---|---|---|
|
ROZWIĄZANY: Szerokość Forum Rules
|
Skiny - pomoc |
godfather
|
|
|
|
ROZWIĄZANY: Błąd w regulaminie forum
|
Propozycje, uwagi, opinie |
matma4u
|
|
|
|
Google maps na forum?
|
Ogólny support IPB |
ojdas
|
|
|
|
[WYKONANE] Forum istnieje X dni
statystyki forum |
Modyfikacje w produkcji |
necik
|
|
|
|
[IPB] Forum komputerowe PcTower.pl
|
Zaprezentuj się |
b4rt3k
|
|
|


Pomoc





Do góry
Cytuj















