Skocz do zawartości
"Idzie nowe..." - o zmianach i nie tylko ×
Przeniesienie zakupów z IPS Marketplace / Moving bought items from IPS Marketplace ×

Strona główna + Forum = współpraca


Bellum

Rekomendowane odpowiedzi

Z tym, że te 'ekstrawagancje' są znacznie prostsze (!). :D

(...) i dziwić się tu, że większość stron wygląda jak z przed wojny, toż jeszcze trochę a strony w hexie będziemy pisać, no nic spróbuję siłami przebić się przez ten jak dla mnie miszmasz. :D

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Przy kodzie IP.Board nie martwisz się o sprawdzanie bezpieczeństwa itd. Po prostu to taki framework, który polecam do tworzenia kodu do niego ( skryptu forum ).

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

Przy kodzie IP.Board nie martwisz się o sprawdzanie bezpieczeństwa itd. Po prostu to taki framework, który polecam do tworzenia kodu do niego ( skryptu forum ).

Cóż ja się nie poddaję :D

	$mysql = "SELECT title,post FROM posts, topics)";
$wykonaj = @mysql_query($mysql) or die('<br />Niepoprawny wiersz bądź kolumna<br />'.mysql_error());
echo '<DIV ID="MENU"><dl id="menu0">';
while ($wiersz = mysql_fetch_row($wykonaj)) 
	{
echo '<dt>'. $wiersz[0] .'</dt><dd>'. $wiersz[1] .'</dd>';
	}	
	echo '</dl></DIV>';

Mam takie pytanie w jaki sposób wyświetlić teraz wyłącznie te posty i tytuły z odpowiedniej kategorii.

WHERE forum_id IN(7)

To działa wyśmienicie gdy chcę wyświetlić wyłącznie tytuły z odpowiedniej kategorii, teraz w jaki sposób dodać do tego również posty? Z poprzednim problemem już sobie poradziłem :D

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

A jak myślisz, jakby to można było zrobić?

Nie mam zielonego pojęcia. Siedzę sobię na stronie przeglądając możliwości warunku WHERE, i nic mi nie świta.

Próbowałem, oczywiście nic z tego, nie wstydzę się błędów oraz prób, gdyż tak najłatwiej się nauczę.

WHERE topic_id=forum_id IN(7)

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Najlepiej pobierz ID tematów - zapisz do jakiejś tablicy, a potem wykonaj drugie zapytanie pobierające wszystkie posty z tabeli posts. Reszta to już PHP i połączenie tego w całość. Z pomocą przyjdą Ci na pewno tablice wielowymiarowe ( tablice w tablicach ).

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 3 tygodnie później...

Najlepiej pobierz ID tematów - zapisz do jakiejś tablicy, a potem wykonaj drugie zapytanie pobierające wszystkie posty z tabeli posts. Reszta to już PHP i połączenie tego w całość. Z pomocą przyjdą Ci na pewno tablice wielowymiarowe ( tablice w tablicach ).

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 :D

A teraz napiszę nowy temat, tego proszę jeszcze nie zamykać, gdyż będę kontynuował wątek zmiennych.

Pozdrawiam

Odnośnik do komentarza
Udostępnij na innych stronach

Jako, że jest to forum o IPB 3 a ja mam pytania z dziedziny pokrewnej, to brnę dalej :D

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

Odnośnik do komentarza
Udostępnij na innych stronach

Nie rozumiem pytania. :D

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:

post-676-1269173575,8855_thumb.jpg

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.

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

  • Manager

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.

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

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);
?>

Odnośnik do komentarza
Udostępnij na innych stronach

Pokaż cały kod.

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);
?>

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

  • Manager

Ojojo :D

WHERE t.forum_id IN (intval($_GET['fid']))

Zamień na:

WHERE t.forum_id IN (" . intval($_GET['fid']) . ")

Nie myślisz. :D :D

  • Lubię to 1

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

Ojojo :D

WHERE t.forum_id IN (intval($_GET['fid']))

Zamień na:

WHERE t.forum_id IN (" . intval($_GET['fid']) . ")

Nie myślisz. :D :D

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 :P; ale nie wpadłbym na to; że można zastosować tu "." :a:; cóż teraz wiem i jestem bogatszy o tą wiedzę.

Super :D działa wyśmienicie.

Odnośnik do komentarza
Udostępnij na innych stronach

Wszystko jasne i temat wyczerpany? :D

Cóż, nie :D

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.

Odnośnik do komentarza
Udostępnij na innych stronach

! isset( $_GET['fid'] )

A gdzie ja mam, to wstawić? :D oraz czy kod, który umieściłem jest poprawny? Nie rozumiem wogóle gdzie to umieścić w kodzie patrzę sobie na stronę http://pastebin.com/m7cf60e54 i trochę łapę o co chodzi ale nie potrafię umieścić poprawnie tego w kodzie

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

No do tego elseif jak mówiłeś, wstaw. :-)

		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>';
	}
		elseif (isset( $_GET['fid'] ))
		{
		include "page/kolory.php";
		}			

}

Taki efekt nic nie daje, sam nie rozumiem co on ma dać, chodzi o to, że jeżeli wejdę na stronę www.kropka.pl/index.php i nie kliknąłem nic z menu czyli $fid jest puste, to includuję stronę kolory.php

Edytowane przez Bellum
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ę
  • 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ę.