Madd Eye
PHP/VB.Net/JS/C++ Programmierer
Dabei seit: 12.04.08
Beiträge: 108
Fähigkeiten: WBB3 Fortgeschritten Herkunft: Kennt eh kein Schwein Forenversion: 3.0
|
|
Hey Leute,
könnte mir mal bitte jemand helfen aus der WCF Datenbank einen Post auzulesen und dann wieder woanders auszugeben (Ist für ne News seite)
möchte das in der richtigen reihenfolge immer der erste Post eines Thread im bereich NEWS (in meinem Forum) augegeben wird
mein bisherige Code:
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
|
<?php
include_once('./sites/error.php');
$con = @mysql_connect($mysqlhost, $mysqluser, $mysqlpwd) or die(geterror(1));
@mysql_select_db('opaw@1-wcf', $con) or die(geterror(1));
//ThreadID checken
$sql = "SELECT * FROM wbb1_1_thread WHERE boardID = '43'"; // 9 = News
$result = mysql_query($sql) or die(geterror(1));
echo mysql_error();
while ($threadID = mysql_fetch_array($result))
{
//Message Filtern
//echo $threadID['threadID']." ";
$id = $threadID['threadID'];
$sql2 = "SELECT * FROM `wbb1_1_post` WHERE threadID = '".$id."' ORDER BY threadID DESC, postID DESC limit 0,1";
$message = mysql_query($sql2) or die(geterror(1));
echo mysql_error();
while ($news = mysql_fetch_array($message))
{
echo$news['message']."<br>";
}
}
mysql_close($con);
?> |
|
Das Problem es wird jeder Post angezeigt und in der Falschen reihenfolge
Danke schonmal für die Hilfe
|
|
03.01.10 21:17 |
E-Mail
WWW
Finden
Als Freund hinzufügen
|
|
|
Dizzy.w3
Brain Damage
Dabei seit: 18.07.07
Beiträge: 1.431
Herkunft: Österreich Forenversion: 3.0
|
|
Hi,
ich hab vor langer Zeit fuer das wBB3 folgendes Newsscript geschrieben, es soll Beitraege auslesen.
Leider verstehe ich deinen Wunsch nicht ganz, zumindest denke ich es.
Mein Script liest den 1. Post aus allen Threads einer bestimmten Kategorie aus.
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
|
<html>
<head>
<title>Newsscript</title>
<style type="text/css">
<!--
.codDiv
{
text-align:left;
border:1px solid black;
font-size:12px;
color:green;
background-color:#ececec;
padding:5px;
}
.quoteDiv
{
text-align:left;
border:1px solid black;
font-size:12px;
color:blue;
background-color:#ececec;
padding:5px;
}
.global
{
border: solid 1px black;
margin: 10px;
font-family: Verdana,Arial,Helvetica,sans-serif;
font-size:10px;
}
.content
{
background-color: #527AAE;
padding: 5px;
}
.message
{
background-color: #C1E7EC;
padding: 5px;
}
.footer
{
background-color: #527AAE;
padding: 5px;
}
-->
</style>
</head>
<body bgcolor="#C1E7EC">
<?php
function bbcode_parse($text)
{
$text = preg_replace("/\[img\](.*?)\[\/img\]/si", '<img src="\\1" border="0" />', $text);
$text = preg_replace("/\[url\](.*?)\[\/url\]/si", '<a href="\\1">\\1</a>', $text);
$text = preg_replace("/\[url=\'(.*?)\'\](.*?)\[\/url\]/si", '<a href="\\1">\\2</a>', $text);
$text = preg_replace("/\[url=(.*?)\](.*?)\[\/url\]/si", '<a href="\\1">\\2</a>', $text);
$text = preg_replace("/\[align=(.*?)\](.*?)\[\/align\]/si", '<span style="text-align:\\1">\\2</span>', $text);
$text = preg_replace("/\[email\](.*?)\[\/email\]/si", '<a href="mailto:\\1">\\1</a>', $text);
$text = preg_replace("/\[code\](.*?)\[\/code\]/si", 'Code:<div class="codeDiv">\\1</div>', $text);
$text = preg_replace("/\[quote\](.*?)\[\/quote\]/si", 'Zitat:<div class="quoteDiv">\\1</div>', $text);
$text = preg_replace('/\[(\/?)(b|i|u|li|ul|ol)\]/i', '<$1$2>', $text);
$text = preg_replace('/^(={1,6})\s*(.+)\s*(\1)\s*$/me', '\'<h\'.strlen(\'$1\').\'>\'.rtrim(\'$2\').\'</h\'.strlen(\'$1\').\'>\'', $text);
return nl2br($text);
}
$host = 'localhost'; // Adresse des MySQL-Servers, meistens localhost
$username = 'user'; // MySQL-Benutzer ... Besitzer der Datenbank, bei lokalen Installationen meist root
$dbname = 'wbb3'; // Name der Datenbank
$passwd = 'passwd'; // Passwort des MySQL-Benutzers
$url2profile = 'http://board.dizzy-w3.at/index.php?page=User&userID=';
$url2thread = 'http://board.dizzy-w3.at/index.php?page=Thread&threadID=';
$boardID = 35;
@$db = new mysqli($host, $username, $passwd, $dbname);
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$query = 'SELECT wbb1_1_thread.time, wbb1_1_post.username, wbb1_1_thread.threadID, wbb1_1_thread.isDeleted, wbb1_1_thread.replies, wbb1_1_post.subject, wbb1_1_post.message, wbb1_1_post.time, wbb1_1_thread.userID, wbb1_1_thread.views
FROM wbb1_1_post, wbb1_1_thread
WHERE wbb1_1_post.postID = wbb1_1_thread.firstPostID
AND wbb1_1_thread.boardID = '.$boardID.'
AND wbb1_1_thread.isDeleted = 0
ORDER BY wbb1_1_thread.time DESC
LIMIT 0 , 30';
$res = $db->query($query);
$num_res = $res->num_rows;
for($i = 0; $i < $num_res; $i++)
{
$row = $res->fetch_assoc();
echo '<div class="global"><div class="content">
<span style="margin-left: 20px;"><b><a href="'.$url2thread.stripslashes($row['threadID']).'">'.stripslashes($row['subject']).'</a></b> von <a href="'.$url2profile.stripslashes($row['userID']).'">'
.stripslashes($row['username']).'</a> am '. date('d m Y', $row['time']) .' um '. date('H:i', $row['time']) .'</span></div>';
echo '<div class="message"><p>'.bbcode_parse(stripslashes($row['message'])).'</p><br /><br /></div>
<div class="footer">Views: '.stripslashes($row['views']).' | Antworten: ' . stripslashes($row['replies']) . '</div></div>';
}
$res->close();
$db->close();
?>
</body>
</html> |
|
Du kannst es ja mal ausprobieren, so weit ich weiss funktioniert es, Kleinigkeiten kannst du ja bestimmt selbst anpassen.
Edit: Tag nicht geschlossen
__________________ Gruß Dizzy
the rest is silence
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Dizzy.w3: 03.01.10 21:56.
|
|
03.01.10 21:56 |
E-Mail
Finden
Als Freund hinzufügen
|
|
|
rambule
Mitglied
Dabei seit: 12.01.10
Beiträge: 1
Fähigkeiten: WBB3 Anfänger Forenversion: 3.1
|
|
Zitat: |
Original von Dizzy.w3
so weit ich weiss funktioniert es
|
mhm bei mir läufts nicht
Daten sind Richtig eingegben aber irgendwie bekomm ich nen Fehler
code: |
1:
|
Fatal error: Call to a member function close() on a non-object in /home/www/web305/html/memorandum/forum/memo_news.php on line 105 |
|
jemand ne idee was ich tuen kann ?^^
|
|
12.01.10 20:25 |
E-Mail
Finden
Als Freund hinzufügen
|
|
Madd Eye
PHP/VB.Net/JS/C++ Programmierer
Dabei seit: 12.04.08
Beiträge: 108
Fähigkeiten: WBB3 Fortgeschritten Herkunft: Kennt eh kein Schwein Forenversion: 3.0
Themenstarter
|
|
Direkt nicht aber es werden eben nicht alle abegedeckt
Das ist das problem da bei mir die News schreiben sehr gerne sehr viele BBCode benutzen xD
|
|
03.01.10 22:37 |
E-Mail
WWW
Finden
Als Freund hinzufügen
|
|
Hawkes
gesperrt 10/01/10
Dabei seit: 31.03.04
Beiträge: 213
|
|
Warum nicht einfach das WCF/WBB requiren und dann das ganze Spielchen veranstalten?
Hatte dafür auch mal nen Codeschnippsel.
|
|
03.01.10 23:08 |
Finden
Als Freund hinzufügen
|
|
Madd Eye
PHP/VB.Net/JS/C++ Programmierer
Dabei seit: 12.04.08
Beiträge: 108
Fähigkeiten: WBB3 Fortgeschritten Herkunft: Kennt eh kein Schwein Forenversion: 3.0
Themenstarter
|
|
Kann mir da wirklich keienr helfen?
Hab den code bisher ein wenig geändert:
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
|
require_once('../forum/global.php');
require_once('../forum/index.php');
define('RELATIVE_WBB_DIR', '../forum/');
define('WCF_DIR', dirname('../forum/wcf/').'/');
require_once(WCF_DIR.'lib/data/message/bbcode/MessageParser.class.php');
function bbcode_parse($text){
$parser = MessageParser::getInstance();
$parser->setOutputType('text/html');
$text = $parser->parse($text, true, false, true, false);
return nl2br($text);
} |
|
|
|
10.01.10 20:35 |
E-Mail
WWW
Finden
Als Freund hinzufügen
|
|
Dizzy.w3
Brain Damage
Dabei seit: 18.07.07
Beiträge: 1.431
Herkunft: Österreich Forenversion: 3.0
|
|
Ich denke mal, dass die Daten falsch sind.
Probiers damit:
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
|
<html>
<head>
<title>Newsscript</title>
<style type="text/css">
<!--
.codDiv
{
text-align:left;
border:1px solid black;
font-size:12px;
color:green;
background-color:#ececec;
padding:5px;
}
.quoteDiv
{
text-align:left;
border:1px solid black;
font-size:12px;
color:blue;
background-color:#ececec;
padding:5px;
}
.global
{
border: solid 1px black;
margin: 10px;
font-family: Verdana,Arial,Helvetica,sans-serif;
font-size:10px;
}
.content
{
background-color: #527AAE;
padding: 5px;
}
.message
{
background-color: #C1E7EC;
padding: 5px;
}
.footer
{
background-color: #527AAE;
padding: 5px;
}
-->
</style>
</head>
<body bgcolor="#C1E7EC">
<?php
function bbcode_parse($text)
{
$text = preg_replace("/\[img\](.*?)\[\/img\]/si", '<img src="\\1" border="0" />', $text);
$text = preg_replace("/\[url\](.*?)\[\/url\]/si", '<a href="\\1">\\1</a>', $text);
$text = preg_replace("/\[url=\'(.*?)\'\](.*?)\[\/url\]/si", '<a href="\\1">\\2</a>', $text);
$text = preg_replace("/\[url=(.*?)\](.*?)\[\/url\]/si", '<a href="\\1">\\2</a>', $text);
$text = preg_replace("/\[align=(.*?)\](.*?)\[\/align\]/si", '<span style="text-align:\\1">\\2</span>', $text);
$text = preg_replace("/\[email\](.*?)\[\/email\]/si", '<a href="mailto:\\1">\\1</a>', $text);
$text = preg_replace("/\[code\](.*?)\[\/code\]/si", 'Code:<div class="codeDiv">\\1</div>', $text);
$text = preg_replace("/\[quote\](.*?)\[\/quote\]/si", 'Zitat:<div class="quoteDiv">\\1</div>', $text);
$text = preg_replace('/\[(\/?)(b|i|u|li|ul|ol)\]/i', '<$1$2>', $text);
$text = preg_replace('/^(={1,6})\s*(.+)\s*(\1)\s*$/me', '\'<h\'.strlen(\'$1\').\'>\'.rtrim(\'$2\').\'</h\'.strlen(\'$1\').\'>\'', $text);
return nl2br($text);
}
$host = 'localhost'; // Adresse des MySQL-Servers, meistens localhost
$username = 'user'; // MySQL-Benutzer ... Besitzer der Datenbank, bei lokalen Installationen meist root
$dbname = 'wbb3'; // Name der Datenbank
$passwd = 'passwd'; // Passwort des MySQL-Benutzers
$url2profile = 'http://board.dizzy-w3.at/index.php?page=User&userID=';
$url2thread = 'http://board.dizzy-w3.at/index.php?page=Thread&threadID=';
$boardID = 35;
@$db = new mysqli($host, $username, $passwd, $dbname);
if ($mysqli->connect_error) {
die('Connect Error: ' . $mysqli->connect_error);
}
$query = 'SELECT wbb1_1_thread.time, wbb1_1_post.username, wbb1_1_thread.threadID, wbb1_1_thread.isDeleted, wbb1_1_thread.replies, wbb1_1_post.subject, wbb1_1_post.message, wbb1_1_post.time, wbb1_1_thread.userID, wbb1_1_thread.views
FROM wbb1_1_post, wbb1_1_thread
WHERE wbb1_1_post.postID = wbb1_1_thread.firstPostID
AND wbb1_1_thread.boardID = '.$boardID.'
AND wbb1_1_thread.isDeleted = 0
ORDER BY wbb1_1_thread.time DESC
LIMIT 0 , 30';
$res = $db->query($query);
$num_res = $res->num_rows;
for($i = 0; $i < $num_res; $i++)
{
$row = $res->fetch_assoc();
echo '<div class="global"><div class="content">
<span style="margin-left: 20px;"><b><a href="'.$url2thread.stripslashes($row['threadID']).'">'.stripslashes($row['subject']).'</a></b> von <a href="'.$url2profile.stripslashes($row['userID']).'">'
.stripslashes($row['username']).'</a> am '. date('d m Y', $row['time']) .' um '. date('H:i', $row['time']) .'</span></div>';
echo '<div class="message"><p>'.bbcode_parse(stripslashes($row['message'])).'</p><br /><br /></div>
<div class="footer">Views: '.stripslashes($row['views']).' | Antworten: ' . stripslashes($row['replies']) . '</div></div>';
}
$res->close();
$db->close();
?>
</body>
</html> |
|
__________________ Gruß Dizzy
the rest is silence
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Dizzy.w3: 12.01.10 21:02.
|
|
12.01.10 21:02 |
E-Mail
Finden
Als Freund hinzufügen
|
|
Madd Eye
PHP/VB.Net/JS/C++ Programmierer
Dabei seit: 12.04.08
Beiträge: 108
Fähigkeiten: WBB3 Fortgeschritten Herkunft: Kennt eh kein Schwein Forenversion: 3.0
Themenstarter
|
|
Hey Dizzy
weißt du zufällig auch was bei mir falsch läuft?
Bekomms einfach nicht hin und bis ich die 30 BBCodes richtig eingefügt habe bin ich steinalt xD
|
|
13.01.10 18:51 |
E-Mail
WWW
Finden
Als Freund hinzufügen
|
|
GneX
Mitglied
Dabei seit: 18.12.06
Beiträge: 656
|
|
Wie Hawkes schon geschrieben hat: Wenn wir das WCF/WBB zur Verfügung haben, würde ich dies Grundsätzlich auch nutzen.
Ein Beispiel:
php: |
1:
2:
3:
4:
5:
6:
7:
8:
|
require_once('./global.php');
require_once(WCF_DIR.'lib/data/message/bbcode/MessageParser.class.php');
public function parseBBCode($message, $enableSmilies = true, $enableHtml = true, $enableBBCodes = true, $doKeywordHighlighting = false) {
$parser = MessageParser::getInstance();
$parser->setOutputType('text/html');
return $parser->parse($message, $enableSmilies, $enableHtml, $enableBBCodes, $doKeywordHighlighting);
} |
|
|
|
13.01.10 19:56 |
Finden
Als Freund hinzufügen
|
|
Madd Eye
PHP/VB.Net/JS/C++ Programmierer
Dabei seit: 12.04.08
Beiträge: 108
Fähigkeiten: WBB3 Fortgeschritten Herkunft: Kennt eh kein Schwein Forenversion: 3.0
Themenstarter
|
|
Ja weiß ich nur kommt bei deinem Code folgendes:
Zitat: |
Fatal error: PHP warning in file /data/multiserv/users/174622/projects/204773/www/forum/wcf/lib/util/HeaderU
til.class.php (15): Cannot modify header information - headers already sent by (output started at /data/multiserv/users/****/projects/****/www/HP/index.php:13) |
|
|
13.01.10 21:24 |
E-Mail
WWW
Finden
Als Freund hinzufügen
|
|
GneX
Mitglied
Dabei seit: 18.12.06
Beiträge: 656
|
|
Irgendetwas anderes vor "<?php" stehen? Sei es ein Leerzeichen, o.Ä.
|
|
14.01.10 16:32 |
Finden
Als Freund hinzufügen
|
|
Madd Eye
PHP/VB.Net/JS/C++ Programmierer
Dabei seit: 12.04.08
Beiträge: 108
Fähigkeiten: WBB3 Fortgeschritten Herkunft: Kennt eh kein Schwein Forenversion: 3.0
Themenstarter
|
|
Nein.
Kann auch nicht daran liegen das ich es include den das hab ich auch schon augeschlossen
|
|
14.01.10 18:09 |
E-Mail
WWW
Finden
Als Freund hinzufügen
|
|
GneX
Mitglied
Dabei seit: 18.12.06
Beiträge: 656
|
|
Du sendest aber irgendwo einen Header, was dem WCF nicht gefällt.
|
|
15.01.10 13:37 |
Finden
Als Freund hinzufügen
|
|
Madd Eye
PHP/VB.Net/JS/C++ Programmierer
Dabei seit: 12.04.08
Beiträge: 108
Fähigkeiten: WBB3 Fortgeschritten Herkunft: Kennt eh kein Schwein Forenversion: 3.0
Themenstarter
|
|
habs hinbekommen xD
ich musste die leerzeiche vor request_once entfernen
|
|
15.01.10 18:12 |
E-Mail
WWW
Finden
Als Freund hinzufügen
|
|
|