ugrás a tartalomhoz

Archívum - Feb 15, 2009 - Fórum téma

adatbázis válltozásainak naplózása

aspirany · 2009. Feb. 15. (V), 16.26
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:
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


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);


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

Dico · 2009. Feb. 15. (V), 14.06
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
 

mysql adatbázis sorok mezőinek táblázatba rendezése php

tthtbr · 2009. Feb. 15. (V), 13.17
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.
 

$_POST[] átadása másik fájlnak

quash · 2009. Feb. 15. (V), 13.06
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.