source: trunk/fill_database.php@ 89

Last change on this file since 89 was 89, checked in by george, 16 years ago
  • Přidáno: Funkce pro export do DBC souborů. Zatím veřejně nepovoleno v nabídce, protože doba generování 45 MB souboru Spells.dbc překračuje max. dobu vykonání PHP skriptu 30 sekund. Nutno zoptimalizovat.
File size: 4.3 KB
Line 
1<?php
2
3include('includes/global.php');
4include('dbc/dbc.php');
5
6ShowPage();
7
8echo('Načítání textů z databáze MaNGOSu: ');
9echo('<div style="font-size: xx-small;">');
10
11foreach($TranslationTree as $Group)
12{
13 if(($Group['MangosTable'] != '') and ($Group['TablePrefix'] != ''))
14 {
15 echo('<br />'.$Group['Name'].'<br />');
16 $Columns = '`'.$Group['MangosDatabase'].'`.`'.$Group['MangosTable'].'`.`'.$Group['MangosTableIndex'].'`';
17 foreach($Group['Items'] as $GroupItem)
18 $Columns .= ', `'.$Group['MangosDatabase'].'`.`'.$Group['MangosTable'].'`.`'.$GroupItem['MangosColumn'].'` AS `'.$GroupItem['Column'].'`';
19 $Query = 'SELECT '.$Columns.' FROM `'.$Group['MangosDatabase'].'`.`'.$Group['MangosTable'].'`';
20 //echo($Query.'<br />');
21 $Count = 0;
22 $NewCount = 0;
23 $DbResult = $Database->SQLCommand($Query);
24 while($DbRow = mysql_fetch_assoc($DbResult))
25 {
26 //echo('SELECT ID FROM '.$Group['TablePrefix'].' WHERE entry='.$DbRow[$Group['MangosTableIndex']].' AND Language=0'."<br>");
27 $DbResult2 = $Database->SQLCommand('SELECT ID FROM '.$Group['TablePrefix'].' WHERE entry='.$DbRow[$Group['MangosTableIndex']].' AND Language=0');
28 if(isset($DbResult2) and (mysql_num_rows($DbResult2) > 0))
29 {
30 $DbRow2 = mysql_fetch_assoc($DbResult2);
31 //echo($DbRow2['ID']);
32 $ColumnsValues = '';
33 foreach($Group['Items'] as $GroupItem)
34 {
35 $ColumnsValues .= ', `'.$GroupItem['Column'].'`="'.addslashes($DbRow[$GroupItem['MangosColumn']]).'"';
36 }
37 $ColumnsValues = substr($ColumnsValues, 2);
38 echo('. '); //'UPDATE `'.$Group['TablePrefix'].'` SET '.$ColumnsValues.' WHERE ID='.$DbRow2['ID']."<br>");
39 //print_r($DbRow2);
40 $Database->SQLCommand('UPDATE `'.$Group['TablePrefix'].'` SET '.$ColumnsValues.' WHERE ID='.$DbRow2['ID']);
41 } else
42 {
43 $Columns = 'entry, language';
44 $Values = $DbRow[$Group['MangosTableIndex']].', 0';
45 foreach($Group['Items'] as $GroupItem)
46 {
47 $Columns .= ', `'.$GroupItem['Column'].'`';
48 $Values .= ', "'.addslashes($DbRow[$GroupItem['MangosColumn']]).'"';
49 }
50 //$Columns = substr($Columns, 2);
51 //$Values = substr($Values, 2);
52 $Database->SQLCommand('INSERT `'.$Group['TablePrefix'].'` ('.$Columns.') VALUES ('.$Values.')');
53 echo('# ');
54 //echo('INSERT `'.$Group['TablePrefix'].'` ('.$Columns.') VALUES ('.$Values.')'."<br>");
55 $NewCount++;
56 }
57 $Count++;
58 }
59 echo('<br />Celkem: '.$Count.' Nových: '.$NewCount.'<br />');
60 } else
61 if(($Group['DBCFileName'] != '') and ($Group['TablePrefix'] != ''))
62 {
63 echo('<br />'.$Group['Name'].'<br />');
64 $DBCFile = new DBCFile();
65 $DBCFile->OpenFile('dbc/'.$Group['DBCFileName'].'.dbc', $Group['DBCColumns']);
66 $ItemCount = $DBCFile->RecordCount();
67 $NewCount = 0;
68 $Count = 0;
69 for($i = 0; $i < $ItemCount; $i++)
70 {
71 $ItemId = $DBCFile->GetUint($i, 0);
72 $DbResult2 = $Database->SQLCommand('SELECT ID FROM '.$Group['TablePrefix'].' WHERE entry='.$ItemId.' AND Language=0');
73 if(isset($DbResult2) and (mysql_num_rows($DbResult2) > 0))
74 {
75 $DbRow2 = mysql_fetch_assoc($DbResult2);
76 //echo($DbRow2['ID']);
77 $ColumnsValues = '';
78 foreach($Group['Items'] as $GroupItem)
79 {
80 $ColumnsValues .= ', `'.$GroupItem['Column'].'`="'.addslashes($DBCFile->GetString($i, $GroupItem['DBCColumnIndex'])).'"';
81 }
82 $ColumnsValues = substr($ColumnsValues, 2);
83 echo('. '); //'UPDATE `'.$Group['TablePrefix'].'` SET '.$ColumnsValues.' WHERE ID='.$DbRow2['ID']."<br>");
84 //print_r($DbRow2);
85 $Database->SQLCommand('UPDATE `'.$Group['TablePrefix'].'` SET '.$ColumnsValues.' WHERE ID='.$DbRow2['ID']);
86 } else
87 {
88 $Columns = 'entry, language';
89 $Values = $ItemId.', 0';
90 foreach($Group['Items'] as $GroupItem)
91 {
92 $Columns .= ', `'.$GroupItem['Column'].'`';
93 $Values .= ', "'.addslashes($DBCFile->GetString($i, $GroupItem['DBCColumnIndex'])).'"';
94 }
95 //$Columns = substr($Columns, 2);
96 //$Values = substr($Values, 2);
97 $Database->SQLCommand('INSERT `'.$Group['TablePrefix'].'` ('.$Columns.') VALUES ('.$Values.')');
98 echo('# ');
99 //echo('INSERT `'.$Group['TablePrefix'].'` ('.$Columns.') VALUES ('.$Values.')'."<br>");
100 $NewCount++;
101 }
102 $Count++;
103 }
104 echo('<br />Celkem: '.$Count.' Nových: '.$NewCount.'<br />');
105 }
106}
107echo('Dokončeno.</div>');
108
109WriteLog('Plnění databáze', 4);
110
111ShowFooter();
112
113?>
Note: See TracBrowser for help on using the repository browser.