View Single Post
ישן 12-02-11, 13:17   # 12
SniR-S
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Aug 2008
הודעות: 546

SniR-S לא מחובר  

אוקי חבר'ס, אז אני הצלחתי למצוא פתרון, קצת אחר,
אבל מכיוון ששמתי לב שהנתונים בטבלה הראשונה, הם בקידוד עברי
ולא פעמיים UTF-8 (שגם זה היה אפשרי להמיר, עם הסקריפט שבניתי, רק טיפה לשנות אותו)
אז הכנתי סקריפט שיעשה את העבודה.

הסקריפט הוא להמרת הכותרות של הנושאים מהמערכת VBULLETIN ל PHPBB3
אני כמעט בטוח שזה עובד על כל גירסאות ה VB, אני בטוח שעל 4 ו 3 זה עובד.
מה שהסקריפט עושה בעצם, הוא שולף את הכותרת וה ID מהטבלה של הנושאים במערכת VB
ומעדכן את הכותרת לפי ה ID של הנושא בטבלת הנושאים של המערכת PHPBB3
כמובן, זה רק לאחר ביצוע המרה של המערכת VB ל PHPBB3.
אז מי שזה גם קורה לו שכותרות הנושאים לא הומרו כמו שצריך (אגב אצלי זה גם השמות פורומים, אבל גם אותם אני אשנה, ע"י שינוי קטן בסקריפט, מה שגם אתם יכולים לעשות),
אז הוא יכול להשתמש בסקריפט.

PHP קוד:
<html dir="rtl">
    <head>
        <title>SCRIPT CONVERT TOPICS, HEBREW - VBULLETIN TO PHPBB3</title>
        <meta http-equiv="Content-Type" content="text/html; charset=windows-1255" />
    </head>
<body>
<?php
$connection 
mysql_connect("localhost""NAME_USER_DB""PASSWORD_USER_DB");
    
$connect mysql_select_db("NAME_DB"$connection);
$utf8 mysql_query("SET NAMES 'latin1'");

    
$query_n mysql_query("SELECT `topic_id` FROM `phpbb_topics`") or die ("Query Faild:" mysql_error());
    
$number mysql_num_rows($query_n);

if (
$_GET['start'] >= $number) {
    echo 
"<br /><br />כל הרשומות הומרו.";
    echo 
"<meta http-equiv=\"refresh\" content=\"1;url=http://www.google.co.il\" />";
} elseif (isset(
$_GET['start']) && is_numeric($_GET['start'])) {
$start $_GET['start'];
$limited 500// מספר נושאים להמרה בכל 10 שניות
    
$query mysql_query("SELECT * FROM `thread` ORDER BY `threadid` LIMIT $start,$limited") or die ("Query Faild:" mysql_error());
        while (
$r mysql_fetch_assoc($query)) {
            
$id $r['threadid'];
            
$title $r['title'];

            echo 
$id " | " $title "<br />";
            
mysql_query("SET NAMES 'hebrew'");
            
mysql_query("UPDATE `phpbb_topics` SET `topic_title` = '$title' WHERE `topic_id` = '$id'");
        }
    
$to_start $start+$limited;
    echo 
"<br /><br />הרשומות מרשומה $start ועד הרשומה $to_start הומרו,הינך מועבר לרשומות הבאות.";
    echo 
"<meta http-equiv=\"refresh\" content=\"10;url=?start=$to_start\" />";
}

?>
</body>
</html>
צריך להכניס את פרטי המסד כמובן,
לפנות להפעלת הסקריפט פשוט להוסיף "?start=0" .. בכתובת..
ודבר שני זה שאתם יכולים לשנות את הסקריפט כרצונכם ולייעל אותו איך שבא לכם.
להוסיף, לערוך, לשנות ולשדרג, אני מקווה שהוא יעזור גם לאחרים, ובמידה
ומישהו יתקל בבעיה הזו שלי, הוא יוכל להיעזר בזה.


בכל מקרה חברים, תודה רבה לכל מי שעזר

Last edited by SniR-S; 12-02-11 at 13:38..
  Reply With Quote