Archívum - Feb 15, 2009 - Fórum téma
adatbázis válltozásainak naplózása
Sziasztok!
Irhattam volna a mysql topikba,de most a php felöl közelítem meg a dolgokat.
Adott egy log tábla ahová triggerből kerülnek be az adatok.
pl:
ugyan ez a kód updatéra is.
gondoltam array_diffel megkeresem a válltozásokat de nem jőn össze.
A kód:
köszönöm a segítséget.Arra is nyitott vagyok ha ezt adatbázis szinten is meg lehet oldani.
■ Irhattam volna a mysql topikba,de most a php felöl közelítem meg a dolgokat.
Adott egy log tábla ahová triggerből kerülnek be az adatok.
pl:
BEGIN
INSERT INTO /*trigger@tablename_log_insert*/
activity_log/*t*/
SET
bizonylat = NEW.iktatoszam,
tablename = 'szamla',
activity = 'update',
user = NEW.modosito,
/*creator_id = @CURRENT_USER,*/
log_msg = CONCAT_WS('","',"",NEW.eredeti,NEW.bizherk,NEW.szlabeerk,
NEW.bizbeerk,NEW.megnev,NEW.szallito,NEW.szlaszam,NEW.szlevelszam,NEW.fizmod,
NEW.szlakiallitas,NEW.szlateljesites,NEW.szlafizhat,NEW.statusz,NEW.jovairoszla,
NEW.afa,NEW.netto,NEW.brutto,NEW.afaosszeg,NEW.utalosszeg,NEW.utalnap,NEW.megjegyzes,
NEW.ell,NEW.utalhat,NEW.utalmegjegyz,"");
END
INSERT INTO /*trigger@tablename_log_insert*/
activity_log/*t*/
SET
bizonylat = NEW.iktatoszam,
tablename = 'szamla',
activity = 'update',
user = NEW.modosito,
/*creator_id = @CURRENT_USER,*/
log_msg = CONCAT_WS('","',"",NEW.eredeti,NEW.bizherk,NEW.szlabeerk,
NEW.bizbeerk,NEW.megnev,NEW.szallito,NEW.szlaszam,NEW.szlevelszam,NEW.fizmod,
NEW.szlakiallitas,NEW.szlateljesites,NEW.szlafizhat,NEW.statusz,NEW.jovairoszla,
NEW.afa,NEW.netto,NEW.brutto,NEW.afaosszeg,NEW.utalosszeg,NEW.utalnap,NEW.megjegyzes,
NEW.ell,NEW.utalhat,NEW.utalmegjegyz,"");
END
ugyan ez a kód updatéra is.
gondoltam array_diffel megkeresem a válltozásokat de nem jőn össze.
A kód:
$result = mysqli_query($link,"SELECT log_msg FROM activity_log WHERE tablename = '".$form."' AND bizonylat = 'abc/2009'");
$rows = mysqli_num_rows($result)-1;
$versions = array();
while($row = mysqli_fetch_assoc($result))
{
$versions[] = $row;
}
// print_r($versions);
$z=0;
//$tomb = array($versions[0]['log_msg']);//ekkor nem okés
//$tomb1 = array($versions[1]['log_msg']);//ekkor nem okés
$tomb = array("a","I","LEVÉL","2009-02-13","a","1","UTALÁS","2009-02-12","2009-02-12","2009-02-27","0","2");
$tomb1 = array("a","N","LEVÉL","2009-02-13","a","1","UTALÁS","2009-02-12","2009-02-12","2009-02-27","0","2");
print_r($tomb);
print "<br>";
print_r($tomb1);
//echo $versions[$z+1]['log_msg'];
$diff = array_diff($tomb,$tomb1);
print_r($diff);
$rows = mysqli_num_rows($result)-1;
$versions = array();
while($row = mysqli_fetch_assoc($result))
{
$versions[] = $row;
}
// print_r($versions);
$z=0;
//$tomb = array($versions[0]['log_msg']);//ekkor nem okés
//$tomb1 = array($versions[1]['log_msg']);//ekkor nem okés
$tomb = array("a","I","LEVÉL","2009-02-13","a","1","UTALÁS","2009-02-12","2009-02-12","2009-02-27","0","2");
$tomb1 = array("a","N","LEVÉL","2009-02-13","a","1","UTALÁS","2009-02-12","2009-02-12","2009-02-27","0","2");
print_r($tomb);
print "<br>";
print_r($tomb1);
//echo $versions[$z+1]['log_msg'];
$diff = array_diff($tomb,$tomb1);
print_r($diff);
köszönöm a segítséget.Arra is nyitott vagyok ha ezt adatbázis szinten is meg lehet oldani.
DBA függvények használata
Sziasztok!
Nagy gondban vagyok a dba függvényekkel. Próbáltam magamtól orvosolni a problémát, de sajnos nem megy. A gondom a következő:
A gépemre Windows XP op. rendszer alá az AppServer2.5.9-est telepítettem fel, hostnak localhostot adtam meg. (Továbbiakban próbálkoztam még Az EasyPHP-val és a WampServer-el is...) Végeredményben minden tökéletesen működik, csak ezeknél a fránya dba függvényeknél kapom az alábbi hibaüzenetet:
Warning: dba_open(./data/termekek.db,c) [function.dba-open]: Driver initialization failed for handler: db3: Permission denied in C:\AppServ\www\peldak\Hour 12\listing12.1.php on line 15
A dba_handlers() fgv. az alábbi elérhető adatbáziskezelőket adja vissza:
# cdb
# cdb_make
# db3
# inifile
# flatfile
php.ini-ben kivettem a megjegyzést a megfelelő sorok elől.
httpd.conf állományban szerintem minden rendben van.
pws-php5cgi.reg állomány tartalma így néz ki:
REGEDIT4
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w3svc\parameters\Script Map]
".php"="C:\\AppServ\\php5\\php.exe"
Szerintem ez is stimmt. Hozzá is adtam a regisztrációs adatbázishoz....
A google találatai szerint belefutottam egy bug-ba amit elvileg már javítottak...
Nos én le is töltöttem a php-debug-pack-5.2.5-Win32.zip állományt. Viszont a bibi, hogy itt minden kiterjesztés .pdb. És fogalmam sincs, hogy mit is csináljak velük... :-(
Vagy nem ez a baj? :-(
Jani
■ Nagy gondban vagyok a dba függvényekkel. Próbáltam magamtól orvosolni a problémát, de sajnos nem megy. A gondom a következő:
A gépemre Windows XP op. rendszer alá az AppServer2.5.9-est telepítettem fel, hostnak localhostot adtam meg. (Továbbiakban próbálkoztam még Az EasyPHP-val és a WampServer-el is...) Végeredményben minden tökéletesen működik, csak ezeknél a fránya dba függvényeknél kapom az alábbi hibaüzenetet:
Warning: dba_open(./data/termekek.db,c) [function.dba-open]: Driver initialization failed for handler: db3: Permission denied in C:\AppServ\www\peldak\Hour 12\listing12.1.php on line 15
A dba_handlers() fgv. az alábbi elérhető adatbáziskezelőket adja vissza:
# cdb
# cdb_make
# db3
# inifile
# flatfile
php.ini-ben kivettem a megjegyzést a megfelelő sorok elől.
httpd.conf állományban szerintem minden rendben van.
pws-php5cgi.reg állomány tartalma így néz ki:
REGEDIT4
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w3svc\parameters\Script Map]
".php"="C:\\AppServ\\php5\\php.exe"
Szerintem ez is stimmt. Hozzá is adtam a regisztrációs adatbázishoz....
A google találatai szerint belefutottam egy bug-ba amit elvileg már javítottak...
Nos én le is töltöttem a php-debug-pack-5.2.5-Win32.zip állományt. Viszont a bibi, hogy itt minden kiterjesztés .pdb. És fogalmam sincs, hogy mit is csináljak velük... :-(
Vagy nem ez a baj? :-(
Jani
mysql adatbázis sorok mezőinek táblázatba rendezése php
Sziasztok!
Mysql adatbázisból jönnek ki adatok, amik az alábbi php táblába kerülnek. Jelenleg a php tábla egy sorában 2 sql sor jelenik meg.
Eddik ok!
A gondom az, hogy az sql mezők nem egymás alatt kerülnek kiírásra,
hanem sorban.
Mit kell átírnom, hogy a mezők egymás alá krüljenek?
Pl. így.
| sql_sor1 | | sql_sor2 |
------------ ------------
| mezo1 | | mezo1 |
------------ ------------
| mezo2 | | mezo2 |
------------ ------------
| stb | | stb |
------------ ------------
A jelenlegi forrás:
$szamol = 1;
while($sor = mysql_fetch_array($eredmeny)) {
$akarmi1 = $sor["akarmi1"];
$akarmi2 = $sor["akarmi2"];
$akarmi3 = $sor["akarmi3"];
$akarmi4 = $sor["akarmi4"];
$akarmi5 = $sor["akarmi5"];
$akarmi6 = $sor["akarmi6"];
$akarmi7 = $sor["akarmi7"];
$akarmi8 = $sor["akarmi8"];
// hogy hány oszlop legyen...
if ($szamol>2) {
$adat.="
<tr></tr>
";
$szamol=1;
}
$adat .= "
<td>$akarmi1</td>
<td>$akarmi2</td>
<td>$akarmi3</td>
<td>$akarmi4</td>
<td>$akarmi5</td>
<td>$akarmi6</td>
<td>$akarmi7</td>
<td>$akarmi8</td>
";
$szamol++;
}
$html = "
<table border='1' width='400'>
<tr>
$adat
</tr>
</table>
";
print $html;
?>
Most valahogy így néz ki:
sql_sor1 | mezo1 | mezo2 | stb || sql_sor2 | mezo1 | mezo2 | stb |
sql_sor3 | mezo1 | mezo2 | stb || sql_sor4 | mezo1 | mezo2 | stb |
stb.
Ha tudtok segítsetek!
Üdv:
TT.
■ Mysql adatbázisból jönnek ki adatok, amik az alábbi php táblába kerülnek. Jelenleg a php tábla egy sorában 2 sql sor jelenik meg.
Eddik ok!
A gondom az, hogy az sql mezők nem egymás alatt kerülnek kiírásra,
hanem sorban.
Mit kell átírnom, hogy a mezők egymás alá krüljenek?
Pl. így.
| sql_sor1 | | sql_sor2 |
------------ ------------
| mezo1 | | mezo1 |
------------ ------------
| mezo2 | | mezo2 |
------------ ------------
| stb | | stb |
------------ ------------
A jelenlegi forrás:
$szamol = 1;
while($sor = mysql_fetch_array($eredmeny)) {
$akarmi1 = $sor["akarmi1"];
$akarmi2 = $sor["akarmi2"];
$akarmi3 = $sor["akarmi3"];
$akarmi4 = $sor["akarmi4"];
$akarmi5 = $sor["akarmi5"];
$akarmi6 = $sor["akarmi6"];
$akarmi7 = $sor["akarmi7"];
$akarmi8 = $sor["akarmi8"];
// hogy hány oszlop legyen...
if ($szamol>2) {
$adat.="
<tr></tr>
";
$szamol=1;
}
$adat .= "
<td>$akarmi1</td>
<td>$akarmi2</td>
<td>$akarmi3</td>
<td>$akarmi4</td>
<td>$akarmi5</td>
<td>$akarmi6</td>
<td>$akarmi7</td>
<td>$akarmi8</td>
";
$szamol++;
}
$html = "
<table border='1' width='400'>
<tr>
$adat
</tr>
</table>
";
print $html;
?>
Most valahogy így néz ki:
sql_sor1 | mezo1 | mezo2 | stb || sql_sor2 | mezo1 | mezo2 | stb |
sql_sor3 | mezo1 | mezo2 | stb || sql_sor4 | mezo1 | mezo2 | stb |
stb.
Ha tudtok segítsetek!
Üdv:
TT.
$_POST[] átadása másik fájlnak
Sziasztok,
Megoldható hogy a.php által megkapott $_POST[] tartalma átkerüljön b.php-be ?
b.php létrehoz egy form-ot amit, ellenőrzésre, végrehajtásra átad a.php-nek (HTML submit), a.php ezen különbözö ellenörzésket végez, ha hibátlan akkor eltárolja és header()-el valamilyen php-re ugrik. Ha valamilyen hibát talál az adatokban visszaadná ezt b.php-nek $_POST[]-al együtt, azért hogy usernek ne kelljen még1x begépelni az adatokat.
header()-nél olvastam hogy megoldható, de nem igazán akart működni.
■ Megoldható hogy a.php által megkapott $_POST[] tartalma átkerüljön b.php-be ?
b.php létrehoz egy form-ot amit, ellenőrzésre, végrehajtásra átad a.php-nek (HTML submit), a.php ezen különbözö ellenörzésket végez, ha hibátlan akkor eltárolja és header()-el valamilyen php-re ugrik. Ha valamilyen hibát talál az adatokban visszaadná ezt b.php-nek $_POST[]-al együtt, azért hogy usernek ne kelljen még1x begépelni az adatokat.
header()-nél olvastam hogy megoldható, de nem igazán akart működni.