phpBB2.de Foren-Übersicht  
[netclusive - internet broadcasting]
 FAQ  •  Suchen  •  Download  •  Lesezeichen  •  Mitgliederliste  •  Benutzergruppen   •  Registrieren  •  Profil  •  Einloggen, um private Nachrichten zu lesen  •  Login
 
        
 
        
 

LinkLift

Nächstes Thema anzeigen
Vorheriges Thema anzeigen

Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.
Autor Nachricht
Titus
Administrator
Administrator



Anmeldungsdatum: 24.03.2004
Beiträge: 4255

BeitragVerfasst am: Sa 26 Nov, 2005 12:11 Antworten mit ZitatNach oben 

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 Rolling Eyes (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
HiddenBenutzer-Profile anzeigenPrivate Nachricht senden
Google







Verfasst am: Nach oben

Demolition_FABI
phpBB2.de User
phpBB2.de User



Anmeldungsdatum: 02.11.2005
Beiträge: 7

BeitragVerfasst am: Mo 28 Nov, 2005 19:32 Antworten mit ZitatNach oben 

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 Rolling Eyes (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?
OfflineBenutzer-Profile anzeigenPrivate Nachricht senden
Demolition_FABI
phpBB2.de User
phpBB2.de User



Anmeldungsdatum: 02.11.2005
Beiträge: 7

BeitragVerfasst am: Do 15 Dez, 2005 22:40 Antworten mit ZitatNach oben 

Hm, hat denn echt keiner ne Ahnung?
OfflineBenutzer-Profile anzeigenPrivate Nachricht senden
Demolition_FABI
phpBB2.de User
phpBB2.de User



Anmeldungsdatum: 02.11.2005
Beiträge: 7

BeitragVerfasst am: Mi 17 Jan, 2007 18:19 Antworten mit ZitatNach oben 

Also, ist zwar jetzt schon ne Zeit her und ich musst lang mit dem Fehler leben, aber jetzt ist er weg Very Happy
Wer das Problem auch hat, dass Beiträge wegen dem Mod verschwunden sind, der Database Maintenance Mod repariert das ganze wieder wunderbar Wink
OfflineBenutzer-Profile anzeigenPrivate Nachricht senden
Tillmann
phpBB2.de User
phpBB2.de User



Anmeldungsdatum: 11.04.2007
Beiträge: 1

BeitragVerfasst am: Mi 11 Apr, 2007 10:01 Antworten mit ZitatNach oben 

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"]);
   }
}

?>
OfflineBenutzer-Profile anzeigenPrivate Nachricht sendenWebsite dieses Benutzers besuchen
zaplcgn
phpBB2.de User
phpBB2.de User



Anmeldungsdatum: 05.09.2005
Beiträge: 42

BeitragVerfasst am: Mi 30 Jan, 2008 09:40 Antworten mit ZitatNach oben 

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 Smile
OfflineBenutzer-Profile anzeigenPrivate Nachricht senden
zaplcgn
phpBB2.de User
phpBB2.de User



Anmeldungsdatum: 05.09.2005
Beiträge: 42

BeitragVerfasst am: Fr 01 Feb, 2008 10:54 Antworten mit ZitatNach oben 

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 Sad
OfflineBenutzer-Profile anzeigenPrivate Nachricht senden
feva
phpBB2.de User
phpBB2.de User



Anmeldungsdatum: 22.12.2008
Beiträge: 6
Wohnort: VW - Town

BeitragVerfasst am: Sa 28 Feb, 2009 21:41 Antworten mit ZitatNach oben 

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
OfflineBenutzer-Profile anzeigenPrivate Nachricht senden
zaplcgn
phpBB2.de User
phpBB2.de User



Anmeldungsdatum: 05.09.2005
Beiträge: 42

BeitragVerfasst am: Sa 28 Feb, 2009 22:26 Antworten mit ZitatNach oben 

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
OfflineBenutzer-Profile anzeigenPrivate Nachricht senden
ronzzkee
phpBB2.de User
phpBB2.de User



Anmeldungsdatum: 15.05.2009
Beiträge: 1

BeitragVerfasst am: Fr 15 Mai, 2009 14:06 Antworten mit ZitatNach oben 

Hount hat folgendes geschrieben:
So, also dieses Problem sollte gelöst sein Wink
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 Laughing Laughing Laughing
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
OfflineBenutzer-Profile anzeigenPrivate Nachricht senden
Beiträge der letzten Zeit anzeigen:      
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.

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

Ähnliche Beiträge
Thema Autor Forum Antworten Verfasst am
per SQL Beiträge einem User zuordnen djtomcat phpBB2.x - Support 0 Do 06 Aug, 2009 15:56 Letzten Beitrag anzeigen
Neu Installtion ohne löschen der Beit... RycoDePsyco phpBB2.x - Support 2 Fr 27 März, 2009 20:50 Letzten Beitrag anzeigen
In diesem Forum sind keine Beiträge v... paloma phpBB2.x - Installation 0 Mi 25 März, 2009 11:03 Letzten Beitrag anzeigen
Beitragsanzeige für letzte Beiträge Jeanny phpBB2.x - Support 1 Di 17 März, 2009 03:44 Letzten Beitrag anzeigen
Style nicht möglich zu ändern, keine ... Kiv phpBB2.x - Support 0 So 08 März, 2009 13:26 Letzten Beitrag anzeigen