Aby sprawdzić ile pochwał masz w danym topicu wykonaj poniższe zapytanie (powinno działać, nie mam takiej tabeli w bazie danych)
Kod: Zaznacz cały
1. SELECT `topic_id`, COUNT(*) as Liczba_pochwal_w_topicu FROM `phpbb_thanks` GROUP BY `topic_id` ORDER BY `topic_id` ASC
Możesz spisać sobie listę topiców z powyższego zapytani, w których masz pochwały. Aby się upewnić czy liczba topiców jest poprawna, możesz wykonać zapytanie
Kod: Zaznacz cały
2. SELECT COUNT(DISTINCT(`topic_id`)) AS liczba_topicow FROM `phpbb_thanks`
Następnie wyświetl jakie tematy (topici) znajdują się w forach (ich id)
Kod: Zaznacz cały
3. SELECT `forum_id`,`topic_id` FROM `phpbb_topics` GROUP BY `forum_id`, `topic_id`
Następnie z powyższego pytania, trzeba by uzupełnić tabelę
`phpbb_thanks` w ten sposób, że jeśli
topic_id = 1 to wstaw
forum_id = 1 Aby to zautomatyzować, trzeba by napisać odpowiednią pętlę, a w sumie to kilka pętli. Trzeba by też mieć odpowiedni zakres danych (topic_id nie będzie chyba w kolejności, w sensie topic_id =1 będzie w forum_id = 1, topic_id=2 będzie w forum_id = 2, a topic_id = 3 będzie ponownie w forum_id = 1. Nie mam teraz na to czasu, więc po prostu możesz zrobić wspomnianą aktualizację w postaci
Kod: Zaznacz cały
4. UPDATE `phpbb_thanks` SET `forum_id` = nr_forum_ktory_chcesz_wstawic WHERE `topic_id` = nr_topicu_który_znajduje_się_w_danym_forum OR `topic_id` = nr_topciu OR ...
Odpowiednie dane czyli jaki topic_id znajduje się w forum_id masz w zapytaniu nr 3. A jakie topici_id musisz zaktualizować masz w zapytaniu nr 1
Mam nadzieję, że nic nie pomieszałem i napisałem w miarę zrozumiale. Oczyiwiście polecam to testować na lokalnym forum i zrobić sobie kopię bazy danych, aby w razie problemów szybko przywrócić poprawną bazę danych poprzez edycję pliku config_php.
EDIT: Tak sobie przypomniałem, że może będzie działać zapytanie
Kod: Zaznacz cały
4. UPDATE `phpbb_thanks` SET `forum_id` = nr_forum_ktory_chcesz_wstawic WHERE `topic_id` IN (nr_topicu, nr_topicu, nr_topicu, etc.)
nr_topicu, to oczywiście lista topiców, które znajdują się w danym forum. Patrz zapytanie 3.