
| Autor |
Nachricht |
Titus
Administrator

Anmeldungsdatum: 24.03.2004
Beiträge: 4255
|
Verfasst am:
Sa 26 Nov, 2005 12:11 |
  |
problem stellt sich wie ich bis jetzt feststellen konnte so dar das vermutlich in phpbb_posts teilweise (doppel)einträge gemacht werden zu denen es keine daten in phpbb_posts_text gibt, damit werden diese nicht angezeigt (was auch) durch die prüfroutine jedoch die vorhandenen posts posts gezählt und dann die falsche anzahl benutzt
ist jetzt nur eine idee (also backup unbedingt erforderlich!!)
versucht mal
den query
| Code: |
SELECT *
FROM phpbb_posts p
LEFT JOIN phpbb_posts_text pt ON pt.post_id = p.post_id
ORDER BY pt.post_id ASC |
überall wo bei dem zweiten post_id "null" steht das sind die posts die falsch sind, entweder du legst dafür neue "dummys" an oder löscht die postids in phpbb_posts |
_________________ "geht nicht" ist keine Fehlerbeschreibung mit der man was anfangen kann
bei Fragen erst suchen
Downloads gibts hier und da |
|
   |
 |
Google
|
Verfasst am:
|
 |
|
|
 |
Demolition_FABI
phpBB2.de User

Anmeldungsdatum: 02.11.2005
Beiträge: 7
|
Verfasst am:
Mo 28 Nov, 2005 19:32 |
  |
| Titus hat folgendes geschrieben: |
führe in phpmyadmin mal den query aus
| Code: |
| SELECT p.*, pt.* FROM phpbb_posts p, phpbb_posts_text pt WHERE p.topic_id = 'xxx' AND p.post_id = pt.post_id |
bei p.topic_id = 'xxx' statt der xxx die topic_id eintragen welches das problem hat
nun sollte ein auflistung aller posts kommen die diesem thema zugeordnet sind, wenn hier bei einem oder mehreren der text fehlt müsst ihr euch die id merken und diese löschen
z.b. mit
| Code: |
| DELETE FROM phpbb_posts WHERE post_id = '*ID-post-ohne-text*' |
|
Hm, geht nicht! Da ist bei allen der Text da!
| Titus hat folgendes geschrieben: |
problem stellt sich wie ich bis jetzt feststellen konnte so dar das vermutlich in phpbb_posts teilweise (doppel)einträge gemacht werden zu denen es keine daten in phpbb_posts_text gibt, damit werden diese nicht angezeigt (was auch) durch die prüfroutine jedoch die vorhandenen posts posts gezählt und dann die falsche anzahl benutzt
ist jetzt nur eine idee (also backup unbedingt erforderlich!!)
versucht mal
den query
| Code: |
SELECT *
FROM phpbb_posts p
LEFT JOIN phpbb_posts_text pt ON pt.post_id = p.post_id
ORDER BY pt.post_id ASC |
überall wo bei dem zweiten post_id "null" steht das sind die posts die falsch sind, entweder du legst dafür neue "dummys" an oder löscht die postids in phpbb_posts |
Also da scheints auch nicht zu gehen, also ich habe die ersten 2000 durchgeschaut, da war keiner mit NULL dabei, aber ich kann das ja nicht für 15000 machen, gibt es denn nicht noch ne andere Möglichkeit? |
|
|
   |
 |
Demolition_FABI
phpBB2.de User

Anmeldungsdatum: 02.11.2005
Beiträge: 7
|
Verfasst am:
Do 15 Dez, 2005 22:40 |
  |
Hm, hat denn echt keiner ne Ahnung? |
|
|
   |
 |
Demolition_FABI
phpBB2.de User

Anmeldungsdatum: 02.11.2005
Beiträge: 7
|
Verfasst am:
Mi 17 Jan, 2007 18:19 |
  |
Also, ist zwar jetzt schon ne Zeit her und ich musst lang mit dem Fehler leben, aber jetzt ist er weg
Wer das Problem auch hat, dass Beiträge wegen dem Mod verschwunden sind, der Database Maintenance Mod repariert das ganze wieder wunderbar  |
|
|
   |
 |
Tillmann
phpBB2.de User

Anmeldungsdatum: 11.04.2007
Beiträge: 1
|
Verfasst am:
Mi 11 Apr, 2007 10:01 |
  |
So da ihr zu keiner Lösung gekommen seid, hier mein Code, der bei mir funktioniert hat. Ausführung nur bei vorherigem Backup und ohne garantie!
Bevor man den Code ausführt, sollte man sich im klaren sein, was darin geschiet, ich habe den auf mein Forum abgestimmt, und kannnciht garantieren das es in euren funktioniert, da ich meins teils umgeschrieben habe!
| Code: |
<?
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
include($phpbb_root_path . 'includes/bbcode.'.$phpEx);
//
// Synchronise functions for forums/topics
//
function sync($type, $id = false)
{
global $db;
switch($type)
{
case 'all forums':
$sql = "SELECT forum_id
FROM " . FORUMS_TABLE;
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not get forum IDs', '', __LINE__, __FILE__, $sql);
}
while( $row = $db->sql_fetchrow($result) )
{
sync('forum', $row['forum_id']);
flush();
echo ".";
}
break;
case 'all topics':
$sql = "SELECT topic_id
FROM " . TOPICS_TABLE;
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not get topic ID', '', __LINE__, __FILE__, $sql);
}
while( $row = $db->sql_fetchrow($result) )
{
sync('topic', $row['topic_id']);
flush();
echo ".";
}
break;
case 'forum':
$sql = "SELECT MAX(post_id) AS last_post, COUNT(post_id) AS total
FROM " . POSTS_TABLE . "
WHERE forum_id = $id";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not get post ID', '', __LINE__, __FILE__, $sql);
}
if ( $row = $db->sql_fetchrow($result) )
{
$last_post = ( $row['last_post'] ) ? $row['last_post'] : 0;
$total_posts = ($row['total']) ? $row['total'] : 0;
}
else
{
$last_post = 0;
$total_posts = 0;
}
$sql = "SELECT COUNT(topic_id) AS total
FROM " . TOPICS_TABLE . "
WHERE forum_id = $id";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not get topic count', '', __LINE__, __FILE__, $sql);
}
$total_topics = ( $row = $db->sql_fetchrow($result) ) ? ( ( $row['total'] ) ? $row['total'] : 0 ) : 0;
$sql = "UPDATE " . FORUMS_TABLE . "
SET forum_last_post_id = $last_post, forum_posts = $total_posts, forum_topics = $total_topics
WHERE forum_id = $id";
if ( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not update forum', '', __LINE__, __FILE__, $sql);
}
break;
case 'topic':
$sql = "SELECT MAX(post_id) AS last_post, MIN(post_id) AS first_post, COUNT(post_id) AS total_posts
FROM " . POSTS_TABLE . "
WHERE topic_id = $id";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not get post ID', '', __LINE__, __FILE__, $sql);
}
if ( $row = $db->sql_fetchrow($result) )
{
$sql = ( $row['total_posts'] ) ? "UPDATE " . TOPICS_TABLE . " SET topic_replies = " . ( $row['total_posts'] - 1 ) . ", topic_first_post_id = " . $row['first_post'] . ", topic_last_post_id = " . $row['last_post'] . " WHERE topic_id = $id" : "DELETE FROM " . TOPICS_TABLE . " WHERE topic_id = $id";
if ( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not update topic', '', __LINE__, __FILE__, $sql);
}
}
attachment_sync_topic($id);
break;
}
return true;
}
sync('all topics');
function del_fuck($post_id){
global $db;
$sql = "DELETE FROM phpbb_posts WHERE post_id='".$post_id."'";
if ($result = $db->sql_query($sql)){
$sql = "DELETE FROM phpbb_posts_text WHERE post_id='".$post_id."'";
$db->sql_query($sql);
}
}
function checkid($post_id){
global $db;
$sql = "SELECT * FROM phpbb_posts,phpbb_users WHERE phpbb_posts.post_id = '$post_id' AND phpbb_users.user_id = phpbb_posts.poster_id";
if ($result = $db->sql_query($sql)){
// $row = $db->sql_fetchrow($result);
$acount = $db->sql_numrows($result);
if ($acount <= 0) {
del_fuck($post_id);
flush();
}
}
}
$sql = "SELECT * FROM phpbb_posts WHERE poster_id = '-1'";
if ( ($result = $db->sql_query($sql)) ){
while ($row = $db->sql_fetchrow($result)) {
del_fuck($row["post_id"]);
}
}
$sql = "SELECT * FROM phpbb_posts";
if ( ($result = $db->sql_query($sql)) ){
while ($row = $db->sql_fetchrow($result)) {
checkid($row["post_id"]);
}
}
?>
|
|
|
|
    |
 |
zaplcgn
phpBB2.de User

Anmeldungsdatum: 05.09.2005
Beiträge: 42
|
Verfasst am:
Mi 30 Jan, 2008 09:40 |
  |
Am Reminder liegt es eindeutig nicht, denn den Fehler hatte ich benso, bevor ich den Reminder eingebaut habe.
So ganz verstehe ich diesen Thread auch noch nicht
BIN PHP Newbie
Wär lieb, wenn mir einer Schritt für Schritt erklären könnte, was ich wie wo tun kann, damit dieser Fehler bei mir nicht mehr auftritt
Ist nicht forenbedrohend der Fehler aber nervig  |
|
|
   |
 |
zaplcgn
phpBB2.de User

Anmeldungsdatum: 05.09.2005
Beiträge: 42
|
Verfasst am:
Fr 01 Feb, 2008 10:54 |
  |
| Zitat: |
| nun sollte ein auflistung aller posts kommen die diesem thema zugeordnet sind, wenn hier bei einem oder mehreren der text fehlt müsst ihr euch die id merken und diese löschen |
Hab den SQL BEFEHL mal ausgeführt
ich habe in jedem Post Text und der Fehler tritt trotzdem auf  |
|
|
   |
 |
feva
phpBB2.de User

Anmeldungsdatum: 22.12.2008
Beiträge: 6
Wohnort: VW - Town
|
Verfasst am:
Sa 28 Feb, 2009 21:41 |
  |
So,
dank der beiträge hier, das es mit den gelöschten usern zusammen hängt, habe ich mein Problem gelöst:
*** ACHTUNG: vorher eine sicherung machen ***
Abfrage mit
| Code: |
select * FROM `phpbb_posts` where post_username='<b>User gelöscht!</b>'
oder
select * FROM `phpbb_posts` where poster_id=8388607
|
und dann mittels
| Code: |
delete FROM `phpbb_posts` where post_username='<b>User gelöscht!</b>'
oder
delete * FROM `phpbb_posts` where poster_id=8388607
|
entsorgt ...
und schon gehts .....
danke euch |
|
|
   |
 |
zaplcgn
phpBB2.de User

Anmeldungsdatum: 05.09.2005
Beiträge: 42
|
Verfasst am:
Sa 28 Feb, 2009 22:26 |
  |
ich habs für meine foren auch gelöst mit dem MOD db_maintenance
klappt wunderbar
seit ich das habe gibts keine probs mehr in meinen Foren, da ich sie damit gut aufräumen kann |
|
|
   |
 |
ronzzkee
phpBB2.de User

Anmeldungsdatum: 15.05.2009
Beiträge: 1
|
Verfasst am:
Fr 15 Mai, 2009 14:06 |
  |
| Hount hat folgendes geschrieben: |
So, also dieses Problem sollte gelöst sein
Da mein Tech-Admin die ganzen Hacks, Designs usw eingebaut hat und der momentan auch nicht greifbar ist, habe ich mich schnell in die Materie reindenken müssen. Ich hoffe, damit sind alle Klarheiten beseitigt
Wie schauts jetzt mit dem eigentlichen Problem aus? *grübel* |
oh yeah,thanks for the some exaple now i know
regards to u,
_________________
Vinyl Banners | My Sports |
|
|
   |
 |
|
|
|
|
Gehe zu Seite Zurück 1, 2
|
Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
|