Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Last Posts
Forum PHP.pl > Forum > Gotowe rozwiązania
biper
ELo właśnie napisałem skrypcik pokazujący ostatnie 5 postów z forum phpbb, ale niestety nie dziala... looknijcie na to i sprobujcie znaleźć jakiś błąd. oto kod:

<?
$host = "itn.board.dk3.com";
$log = "mój login";
$has = "moje hasło";

// zaczynamy od zadeklarowania inforamcji potrzebnych do połączenia się z bazą

$polaczenie = mysql_connect($host,$log,$has);
if($polaczenie) echo "ok - jesteś połączony";

// jeśli wykona się if zostało nawiązane połączenie z naszą bazą danych, jeśli nie (instrukcja poniżej) na ekranie wyświetli się napis "brak połączenia z bazą" a skrypt zakończy działanie.

else
{
echo "brak połączenia z bazą";
exit;
}

$sukces = mysql_select_db('nazwa_bazy');
if($sukces)
echo "ok - wybrano bazę";

// jeśli wykona się if została wybrana bazą danych, jeśli nie (instrukcja poniżej) na ekranie wyświetli się napis "nie można wybrać bazy" a skrypt zakończy działanie.

else
{
echo "nie można wybrać bazy";
exit;
}

$zapytanie = "SELECT * FROM phpbb_topics ORDER BY topic_id DESC LIMIT 0, 2";
$wynik = mysql_query($zapytanie);
while($rekord = mysql_fetch_array($wynik)) {

$bgcolor = '#FFFFCC';
$i % 2 ? 0: $bgcolor = '#FFFFFF';
$i++;

echo "<table border='0' cellpadding='0' cellspacing='0' width='100%'>
<tr>
<td bgcolor='",$bgcolor,"'><a href='http://www.forum.itn.prv.pl/viewtopic.php?t=",$rekord[topic_id],"'><b>",$rekord['topic_title'],"</b></a> dodano: <b>",date ("j-n-Y H:i:s", $rekord[topic_time]),"</b>, odpowiedzi: <b>",$rekord[topic_replies],"</b></td>
</tr>
</table>";
}
?>
Jabol
bbcode, a jak nie to close i byebye
biper
ELo właśnie napisałem skrypcik pokazujący ostatnie 5 postów z forum phpbb, ale niestety nie dziala... looknijcie na to i sprobujcie znaleźć jakiś błąd. oto kod:


[php:1:09161fc30e]
<?
$host = "itn.board.dk3.com";
$log = "mój login";
$has = "moje hasło";


$polaczenie = mysql_connect($host,$log,$has);
if($polaczenie) echo "ok - jesteś połączony";

else
{
echo "brak połączenia z bazą";
exit;
}

$sukces = mysql_select_db('nazwa_bazy');
if($sukces)
echo "ok - wybrano bazę";


else
{
echo "nie można wybrać bazy";
exit;
}

$zapytanie = "SELECT * FROM phpbb_topics ORDER BY topic_id DESC LIMIT 0, 2";
$wynik = mysql_query($zapytanie);
while($rekord = mysql_fetch_array($wynik)) {

$bgcolor = '#FFFFCC';
$i % 2 ? 0: $bgcolor = '#FFFFFF';
$i++;

echo "<table border='0' cellpadding='0' cellspacing='0' width='100%'>
<tr>
<td bgcolor='",$bgcolor,"'><a href='http://www.forum.itn.prv.pl/viewtopic.php?t=",$rekord[topic_id],"'><b>",$rekord['topic_title'],"</b></a> dodano: <b>",date ("j-n-Y H:i:s", $rekord[topic_time]),"</b>, odpowiedzi: <b>",$rekord[topic_replies],"</b></td>
</tr>
</table>";
}
?>[/php:1:09161fc30e]
biper
w sumie to zmontowałem to na podstawie jakiegoś artykułu z WebPomocnika i nie za bardzo znam się na php więc proszę o używanie niezbyt fachowego słownictwa... rolleyes.gif
Jabol
smile.gif
a co dokładniej nie działa?
biper
gdy wpisuje adres skryptu zeby sprawdzic czy działa to wczytuje cos (widze tylko biały ekran) z pol godziny i wyskakuje error.
Jabol
jaki error?
biper
BŁĄD
Żądany URL nie może zostać sprowadzony

--------------------------------------------------------------------------------

Podczas sprowadzania URL-a:
adres pliku

wystąpił następujący błąd:

sprowadzony dokument ma zerowy rozmiar
Squid nie otrzymał żadnych danych w odpowiedzi na to żądanie.
Nitro
Spróbój łączyć się z bazą poprzez localhost, prawdopodobnie zdalny dostęp jest zabroniony. To po pierwsze. Błędy w składni to drugie. Po trzecie ten skrypt nie robi tego co założyłeś, wyświetla dwa ostatnio założone tematy.
Wersja poprawiona i działająca twojego skryptu, która nadal nie robi tego o czym pisałeś:
[php:1:0842171127]<?php
$dbhost = 'localhost';
$dbname = 'nazwa bazy';
$dbuser = 'nazwa użytkownika';
$dbpasswd = 'hasło';

@mysql_connect($dbhost,$dbuser,$dbpasswd)
or die("Błąd! Nie można połączyć się z mySQL.");
@mysql_select_db($dbname)
or die("Błąd! Nie można połączyć się wybraną bazą");

$zapytanie = "SELECT * FROM phpbb_topics ORDER BY topic_id DESC LIMIT 0, 2";
$wynik = mysql_query($zapytanie);
while($rekord = mysql_fetch_array($wynik)) {
$bgcolor = '#FFFFCC';
$i % 2 ? 0: $bgcolor = '#FFFFFF';
$i++;
echo "
<table border='0' cellpadding='0' cellspacing='0' width='100%'>
<tr>
<td bgcolor='$bgcolor'>
<a href='http://www.forum.itn.prv.pl/viewtopic.php?t=$rekord[topic_id]'>
<b>$rekord[topic_title]</b></a>
dodano: <b>".date("j-n-Y H:i:s",$rekord[topic_time])."</b>,
odpowiedzi: <b>$rekord[topic_replies]</b>
</td>
</tr>
</table>";
}
?>[/php:1:0842171127]
Zobacz tabele phpbb_posts, korzystając z niej powinneś w prosty sposób przerobić ten skrypt, do swoich potrzeb.
biper
w sumie to problem wygląda tak: teraz skrypt dziala ale wystepuje blad laczenia z baza mySQL. Ja na swoim koncie www nie mam mysql'a ale na tym, na ktorym jest forum to jest mySQL, wiec czemu nie łączy się z baza?questionmark.gifquestionmark.gif
kwiateek
W zwiazku z pojawieniem sie oferty w Job Offers umieszczam swój w pełni działający skrypt:
[php:1:fe607ab1d3]<?php
/*
* phpBB (2.x.x) Last Topics version 2.0.1 beta
*
* File name : class.phpBB-last_topics.php
* File description : Advanced and full configural script which shows
last phpBB topics
* File create : 2002-10-03 21:25:33
* File modified : 2003-07-01 16:00:00
*
* Author : Piotr 'kwiateek' Kwiatkowski
* E-mail : kwiateek@pcmaniak.pl
*
* Copyrights : © 2003 Piotr 'kwiateek' Kwiatkowski. All rights reserved.
* License : This program is free software; you can redistribute it and/
* or modify it under the terms of the GNU General Public
* License (GPL) as published by the Free Software Foundation;
* either version 2 of the License, or (at your option) any
* later version.
*
* To read the license please visit:
* http://www.gnu.org/copyleft/gpl.html
*
* Instalation : Put this file into your classes directory. Include class
* and create a new object of phpbbLastTopics class.
*
* Example (default configuration):
* require_once('class.phpBB-last_topics.php');
* $phpbbLastTopics = new phpbbLastTopics();
*
* Example (with user configuration):
* require_once('class.phpBB-last_topics.php');
* $phpbbLastTopics = new phpbbLastTopics(0, 'forum_', 'forum/', 15, '...', 25, 'topic_id', 'ASC');
*
* Arguments to phpbbLastTopics's contrustor:
* $break_words - 0 false, 1 true
* $prefix - prefix to your db
* $path - path or url to your phpBB directory
* $topic_limit - limit of topics (if 0 then no limit)
* $topic_etc - extension string in the end of topic_title
* $topic_length - topic length
* $order_col - column order
* $order_type - type of order DESC or ASC
*
* Remember you must be connected with your dbase so
* you should add mysql_connect() and mysql_select_db() before you
* create object of phpbbLastTopics's class.
*
* Example:
* mysql_connect('example.com', 'test', 'test');
* mysql_select_db('test');
*
*/

class phpbbLastTopics
{
var $topic_list = array();
var $topic_count = 0;

var $break_words;
var $prefix;
var $path;
var $topic_limit;
var $topic_etc;
var $topic_length;
var $order_col;
var $order_type;

function phpbbLastTopics($break_words = 0, $prefix = 'phpBB_', $path = 'phpBB/', $topic_limit = 10, $topic_etc = '...', $topic_length = 25, $order_col = 'topic_time', $order_type = 'DESC')
{
$this->break_words = $break_words;
$this->prefix = $prefix;
$this->path = $path;
$this->topic_limit = $topic_limit;
$this->topic_etc = $topic_etc;
$this->topic_length = $topic_length;
$this->order_col = $order_col;
$this->order_type = $order_type;
$this->makeTopicList();
$this->showTopics();
}

function makeTopicList()
{
$query = 'SELECT topic_id, topic_last_post_id, ';
if($this->topic_limit != 0) {
if($this->break_words) {
$query .= 'SUBSTRING(topic_title, 1, ' . $this->topic_length . ') AS topic_title, LENGTH( topic_title ) AS topic_title_length ';
} else {
$query .= 'LENGTH( topic_title ) AS topic_title_length, LEFT( topic_title,
IF ( LENGTH(topic_title) < ' . $this->topic_length . ', LENGTH( topic_title ) ,
IF (LOCATE( ' ', topic_title, ' . $this->topic_length . ' ) = 0, LENGTH( topic_title ) , LOCATE( ' ', topic_title, ' . $this->topic_length . ' ) )
)
) AS topic_title ';
}
} else {
$query .= 'topic_title ';
}
$query .= 'FROM ' . $this->prefix . 'topics
ORDER BY ' . $this->order_col . ' ' . $this->order_type . '
LIMIT ' . $this->topic_limit . '';
$result = mysql_query($query);
if($result) {
while($row = mysql_fetch_array($result)) {
$this->topic_count++;
if($this->topic_limit != 0) {
if($row['topic_title_length'] > $this->topic_length) {
$topic_title[$this->topic_count] = $row['topic_title'] . $this->topic_etc;
} else {
$topic_title[$this->topic_count] = $row['topic_title'];
}
} else {
$topic_title[$this->topic_count] = $row['topic_title'];
}
$this->topic_list[$this->topic_count] = array('TopicId' => $row['topic_id'], 'TopicTitle' => $topic_title[$this->topic_count], 'TopicLastPostId' => $row['topic_last_post_id']);
}
return 1;
}
return 0;
}

function showTopics()
{
foreach($this->topic_list as $topic) {
echo '<a HREF="' . $this->path . 'viewtopic.php?t=' . $topic['TopicId'] . '#' . $topic['TopicLastPostId'] . '">' . $topic['TopicTitle'] . '</A><BR>';
}
}
}
?>[/php:1:fe607ab1d3]
biper
dziekuje bardzo tylko bedzie on dzialal na serwerze bez SQL'a??
kwiateek
Cytat
dziekuje bardzo tylko bedzie on dzialal na serwerze bez SQL'a??

Jesli mozesz sie laczyc do bazy danych na innym serwerze to tak. Umiesc skrypt tam gdzie masz zainstalowane forum i po klopocie.

Pozdrawiam.
biper
hmm tylko ze nie mam dostepu do itn.board.dk3.com, wiec musze umiescic skrypt na moim koncie www. DAloby rade w ten sposob? JEsli tak to proszę o dostosowanie skryptu. Jeśli wszystko będzie to umieszcze twoj banner w moim serwsie. 8)
Nitro
Załóż sobie konto na tym serwerze. Wtedy będziesz mógł się połączyć z bazą, może być inny user, chodzi tylko o lokalizację, inaczej nic z tego nie wyjdzie. Raczej nikt nie udostępnia SQL'a inaczej niż lokalnie, więc próba łączenia się z innego serwera odpada.
biper
qRNA, w takim razie nie da rady :cry: szkoda... jesli ktos ma jeszcze jakies pomysly to prosze o pomoc.
kwiateek
Cytat
hmm tylko ze nie mam dostepu do itn.board.dk3.com, wiec musze umiescic skrypt na moim koncie www. DAloby rade w ten sposob? JEsli tak to proszę o dostosowanie skryptu.

To czegoś tutaj nie rozumiem. Jak nie masz dostępu to w takim razie jak wysłałeś skrypt forum na serwer (konto na tym serwerze)?
Sprawa przedstawia się bardzo jasno: nie będziesz miał konta na tym serwerze to nie połączysz się z bazą. Jak nie połączysz się z bazą to samo przerobienie skryptu nic nie da.

Pozdrawiam.
Seth
php=>Skrypty

biper: sam bys sie wzial za nauke php i wrazie problemow pytal, a nie czekal na pomoc innych angrysmiley.gif
biper
dobra ludki - wszystko już działa! looknijcie na http://itn.prv.pl i sami zobaczcie. 8)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.