SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Handbuch der Java-Programmierung

Handbuch der Java-Programmierung zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 03.08.2007, 12:01:09
Tatjana Tatjana ist offline
Anfänger
 
Registriert seit: May 2007
Beiträge: 61
Änderungsjornal

Hallo,

ich habe eine Mysql-DAtenbank.
Jetzt würde ich gerne ein Änderungsjournal machen, wo dann alle Tätigkeiten an der Datenbank aufgelistet sind, also wenn man z.b. etwas neu gespeichrt hat oder geändert oder so.

Meine Frage ist, ob sowas überhaupt geht, und wenn ja wie ich anfangen soll, hab nämlich keine Ahnung.

Vielen Dank!
Mit Zitat antworten
  #2  
Alt 03.08.2007, 12:06:30
Benutzerbild von Indyk
Indyk Indyk ist offline
Member
 
Registriert seit: Aug 2006
Ort: Lübeck
Alter: 37
Beiträge: 900
Indyk eine Nachricht über ICQ schicken
AW: Änderungsjornal

Ich weiss nicht ob MySql sowas von Hausaus inne hat, wenn ja weiss ich es nicht.
Aber mit PHP kann man sicherlich auch sowas realsieren. Ich weiss nicht ja nicht wie du auf deine db zugreifst ob du da ne klasse hast oder eine function, und ob du mit parametern arbeitest oder das sql-statement in einen string haust.

aber ich köntne mir vorstellen das man in der funktion alle "Update" statements filtern könnte und das statement selbst dann in eine logdatei , vll. noch mit zeitpunkt von von welchem user oder von welcher funktion es aufgerufen wurde. Je nachdem was du in deinem journal lesen möchtest.

reden wir da ungefähr von dem was du haben willst oder habe ich dich falsch verstanden?
Mit Zitat antworten
  #3  
Alt 03.08.2007, 12:15:59
Tatjana Tatjana ist offline
Anfänger
 
Registriert seit: May 2007
Beiträge: 61
AW: Änderungsjornal

Ja sowas möchte ich.
Dass in PHP so eine Liste ausgegeben wird, mit allen Änderungen, wo vielleicht daneben steht wann das geändert wurde.
Weiß aber wie gesagt nicht mal wie ich anfangen soll.
Vielleicht könntet Ihr mir das etwas ausführlicher beschreiben.

Die SQL-Anweisungen schicke ich mit PHP an die DAtenbank.
Mit Zitat antworten
  #4  
Alt 03.08.2007, 12:30:36
Benutzerbild von Indyk
Indyk Indyk ist offline
Member
 
Registriert seit: Aug 2006
Ort: Lübeck
Alter: 37
Beiträge: 900
Indyk eine Nachricht über ICQ schicken
AW: Änderungsjornal

Das hängt sehr davon ab wie du mit php verschickst , hast du es in einer Funktion? z.b
PHP-Code:
  function query($sql){
    
$db_host "****";  //Datenbankhost | meist "localhost"
    
$db_name "****";    //Datenbankname
    
$db_user "****";  //Datenbankbenutzer
    
$db_pass "****";    //Benutzerpasswort

    // connet2DB
    
mysql_connect($db_host$db_user$db_pass) OR die("Keine Verbindung zur Datenbank. Fehlermeldung:".mysql_error());
    
// chose the DB
    
mysql_select_db($db_name) OR die("Konnte Datenbank nicht benutzen, Fehlermeldung: ".mysql_error());
    
// send query
    
$resourceIdmysql_query($sql) OR $this->str_error mysql_error();
    
// close connection
    
mysql_close();
    
// return
    
return $resourceId
  

dann müsstest du z.b vor den return noch prüfen ob es sich um einen select handelt (den du ja nicht mit protokolieren möchtest?

PHP-Code:
  function isSelect($str_sql){
        if(
strpos('select'$str_sql) === false){
          
protokoll($str_sql);
          return 
false;
        }else{
            return 
true;
        }
    }
    
    function 
protokoll($str){
        
$time time();
        
save($sql);
    } 
wobei du selbst entscheiden muss ob du es wieder in eine datenbank schreibst oder in eine Datei, in beiden fällen würde ich es auf jedenfall begrenzen, nur eine woche und dann überschreiben oder so, je nachdem was für ein aufkommen du hast.

die funktion save müsstest du dir natürlich selber schreiben bzw. gleich entprechendes in der "protkoll function" reinschreiben
Mit Zitat antworten
  #5  
Alt 03.08.2007, 12:41:05
Tatjana Tatjana ist offline
Anfänger
 
Registriert seit: May 2007
Beiträge: 61
AW: Änderungsjornal

Nein ich benutze keine Funktionen, und keine Klassen.
kann ich das dann nicht so machen, wie du es hier gezeigt hast?

Das ist mir eigentlich egal wo das gespeichert woerden soll, ob ich der DB oder PHPskript.
Es soll aber alles gespechert werden und darf nichts überschrieben werden.
Mit Zitat antworten
  #6  
Alt 03.08.2007, 12:54:41
Benutzerbild von Indyk
Indyk Indyk ist offline
Member
 
Registriert seit: Aug 2006
Ort: Lübeck
Alter: 37
Beiträge: 900
Indyk eine Nachricht über ICQ schicken
AW: Änderungsjornal

ja aber das war jetzt nur als beispiel hingeklatschte funktionen das kann man noch tausend mal besser lösen , aber für den anfang müsstest du in die funcion umschreiben
PHP-Code:
function protokoll($str){
   
$time time();
   
$sql "INSERT INTO tabelle_protokoll ......"
   
$query($sql);

das statement musst du natürlich anpassen und vor allem muss man die überprüfung noch ändern damit es keine endlosschleife gibt udn er sich nicht selbst mitprotokoliert
PHP-Code:
function isSelect($str_sql){
    if(
strpos('select'$str_sql) === false){
        if(
strpos('protokoll') === false){
            
protokoll($str_sql);
        }
        return 
false;
    }else{
        return 
true;
    }

so ich hoffe es stimmt nu mehr oder weniger , aber wie gesagt man kann es auch schönr machen

Geändert von Indyk (03.08.2007 um 12:55:10 Uhr)
Mit Zitat antworten
  #7  
Alt 03.08.2007, 13:08:59
Tatjana Tatjana ist offline
Anfänger
 
Registriert seit: May 2007
Beiträge: 61
AW: Änderungsjornal

Okay danke,
ich werde das dann mal versuchen zu machen.

ich muss ja dann diese tabelle protokoll erstellen oder?
und welche spalten muss sie haben?

mit umschreiben meinst du, dass ich die sql befehle in funktionen umschreiben muss die ich habe in meinen skripten oder?

tut mir leid für die blöden fragen :)
Mit Zitat antworten
  #8  
Alt 03.08.2007, 13:17:26
Benutzerbild von Indyk
Indyk Indyk ist offline
Member
 
Registriert seit: Aug 2006
Ort: Lübeck
Alter: 37
Beiträge: 900
Indyk eine Nachricht über ICQ schicken
AW: Änderungsjornal

jeder hat mal angefangen.

Die Tabelle protokoll müsstest du erstellen ja. Mit so vielen Spalten wie Informationen du speichern möchtest, in meinem Beispiel bin ich von Statement und Zeitpunkt ausgegangen.

Also müsstest du ein spalte Text oder großes Varchar und eine spalte INT für den Timestamp machen. Oder du machst gleich Date dann kann man deferenziertere selects machen
(SELECT ALL von monat april oder von nur donnerstags oder oder)
Dazu müsstest du den timestamp mit date() entsprechend umwandeln.

Nein mit umschreiben meinte ich das du die funktionen die ich dir einen post vorher gezeigt habe nochmal umschreiben muss, also überschreiben oder ergänzen oder updaten (- ; *wortschatz*

viel erfolg

P.s: es würde sich anieten noch eine Spalte "id" inzuzufügen die über das attribut 'autoincrement' verfügt.
Mit Zitat antworten
  #9  
Alt 03.08.2007, 13:19:42
Tatjana Tatjana ist offline
Anfänger
 
Registriert seit: May 2007
Beiträge: 61
AW: Änderungsjornal

Vielen Dank!
ich versuch es dann mal.
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:02:43 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt