Zum Inhalt springen

phpMyAdmin PHP Script zur Datenbanksicherung


Empfohlene Beiträge

Moin zusammen,

 

ich administriere zur Zeit mehr oder weniger einen Onlineshop.

Und jetzt habe ich von meinem Ausbilder die Aufgabe bekommen, dass ich ein PHP Script erstellen soll.

Dieses PHP Script soll eine bestimmte SQL Tabelle (und von da auch nur bestimmte Spalten ) in eine CSV Datei exportieren und per E-Mail gesendet werden.

Letzten Endes soll das ein Cronjob werden ,der dieses Script einmal in der Stunde durchführt. Aber wie ich diesen erstelle weiss ich schon.

Jetzt bin ich natürlich ein blutiger Anfänger der 0,0 h Zeit in sowas jemals investiert hat und stehe bei 0.

Wie man eine PHP Datei erstellt und wie man die per FTP auf den Webserver hochlädt weiß ich auch schon nur wird's schwer bei dem eigentlichen script.

Und da wollte ich euch mal fragen ob ihr Tipps oder Vorlagen für mich habt die am besten noch selbsterklärend sind, um so ein Script zu schaffen.


Wir benutzen phpMyAdmin auf nem Mittwaldserver.

Danke schonmal.

 

Gruß

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 51 Minuten schrieb xFiSiRaZx:

Wir benutzen phpMyAdmin

phpMyAdmin ist "nur" ein in PHP geschriebenes Tool zur Verwaltung von mySQL-Datenbanken. Hat mit dem PHP-Serverdienst erstmal nichts zu tun.

vor 54 Minuten schrieb xFiSiRaZx:

auf nem Mittwaldserver.

Der Hostingdienstleister ist vollkommen irrelevant.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ok Leute, ich habe gerade mit jemandem aus der IT Abteilung gesprochen.

Es ist so, dass ich nur einen Report brauche aus Teilen einer bestimmten Datenbank. Dieser Report soll an eine E-Mail gesendet werden.
Es ist also keine SQL Datenbanksicherung.

Wir haben auf der Adminfläche vom Mittwaldserver einen Cronjobmanager wo ich nur den Scriptpfad auf dem Server eintragen muss und schon läuft der Cronjob. Also nix mit Linux oder Windowssystemen.
 

 

Ein Beispiel zur Veranschaulichung

 

 

Eine SQL Tabelle hat 6 Spalten.
Wir sind in nem Unternehmen ,wo jede Woche 3 neue Leute eingestellt werden.
Die Tabelle zeigt Personaldaten von Mitarbeitern an (Name, Nachname, Adresse, Telefon, Geburtsort, Familienstand)

 

So aus der Tabelle brauche ich jetzt eine wöchentliche Abfrage NUR von den Spalten Name,Adresse, Telefon und Familienstand.

 

Aber auch nur von der Woche aus gesehen und nicht insgesamt. 

Sagen wir mal die Tabelle gibt es seit dem 1.1.2017.

Wenn ich eine Abfrage in der KW 40 mache will ich nur Daten von der KW40 haben und nicht die gesamte Tabelle.

 

Diese Daten sollen in eine CSV Datei exportiert werden und per E-Mail an eine bestimmte E-Mailadresse gesendet werden.

 

Mein Ausbilder hilft mir leider nicht und somit bin ich auf mich alleine gestellt mit dem Internet zusammen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ein Ausbilder ist dafür da, dass er ausbildet, ansonsten macht die Ausbildung keinen Sinn und man könnte sich ein Buch kaufen, es durchlesen und auf die Ausbildung scheißen... :rolleyes:

Die Datenbank-Abfrage ist eine simple SQL-Abfrage. Hast du mit SQL schon Erfahrung?
Um E-Mails mit PHP zu verschicken, gibt es die mail()-Funktion. Hast du mit PHP schon mal gearbeitet?

Ich persönlich bin aber kein Freund von stiller Post mit E-Mails. Auch ist die Lösung sehr fehleranfällig. Was ist, wenn der Server nicht erreichbar ist? Oder die E-Mail nicht versendet werden kann? etc.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich will dir die Arbeite natürlich nicht komplett abnehmen aber ich denke Grundsätzlich sollte der Aufbau des auszuführenden Scripts sein:

 

Bau dir einen SQL Befehl. Da sind Grundlagen soweit bekannt? Das Internet kann da super helfen womit du dir die Daten aus der Tabelle ziehst und anschließend in einer Datei speicherst? Ich denke das geht :-) - Mit dem eine Woche Intervall musst dich auch mal schlau machen oder vllt. weiß das wer anders.

SELECT Name, Nachname, Adresse, Telefon, Geburtsort, Familienstand FROM MITARBEITER;

 

Tu dir das in in dein Script und lass danach z.B ein weiteres Script laufen welches wenn gewünscht per PHP die Mail verschickt. 

Thema Anhang ist auch ein nettes Thema, dass man sich aneignen kann mit Tutorials

Grundaufbau :

<?php 
    $from = "emailtest@YOURDOMAIN";
    $to = "adresse@domain.de";
    $subject = "PHP Mail";
    $message = "This is a test to check the PHP Mail functionality";
    $headers = "From:" . $from;
    mail($to,$subject,$message, $headers);
?>

 

Link zu diesem Kommentar
Auf anderen Seiten teilen


Ich hab mit SQL leider noch garnix zu tun gehabt.

 

Bei PHP hatte ich mir mal für 2 Tage ein paar simple PHP Funktionen angeguckt und dies war es dann auch schon.

 

Könnt ihr mir erklären wofür ihr dieses "$" davor macht ? Das steht doch dafür dass man eine Variable deklarieren will oder ?

 

Also man muss wahrscheinlich in einem PHP Script auch noch SQL jetzt einbauen oder ?
Ich verzweifel echt an dieser Aufgabe :wacko:

Link zu diesem Kommentar
Auf anderen Seiten teilen

Sorry, aber wenn du ein blutiger Anfänger bist, dann hat dir dein Ausbilder diese Aufgabe wohl bewusst gegeben, damit du mal ein paar Stunden/Tage davor sitzt und dir die Materie anguckst ;)

Du hast wahrscheinlich auch im privaten dich noch nicht mit diesen Themen auseinander gesetzt. Wäre es ne exotische Sprache, okay ich würds verstehen.

Aber zu PHP gibt es im Internet nahezu keine Frage, die nicht schon irgendwo gestellt wurde. Und PHP selbst müsste auch extrem gut dokumentiert sein. Wenn dir jetzt hier Code hingeworfen wird, dann bringt das gar nichts und ist wohl auch nicht der Hintergedanke deines Ausbilders.

Also: Google anwerfen und lernen, dass gehört zum Job :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 2 Minuten schrieb KeeperOfCoffee:

Also: Google anwerfen und lernen, dass gehört zum Job :)

Ja und Nein. Ja, es gehört zum Job und Nein, das sollte in der Ausbildung nicht der Normalfall sein, denn Google kann gute Ausbildung nicht ersetzen. Der Azubi sollte schon in der Lage sein, die Aufgabe zu lösen. Wenn er aber sich erstmal die Grundlagen zu SQL, PHP sich alleine beibringen muss, wird es schnell demotivierend. Ein Ausbilder oder ein Ausbildungsbeauftragter sollte bestmöglich immer zur Rat und Tat zur Seite stehen. Dass es nicht immer möglich ist, ist klar aber es sollte nicht der Normalzustand sein. Dann bringt auch die Ausbildung nichts. Schon mal gerade über PHP sehr viel Schrott im Internet zu finden ist, da PHP eine Sprache ist, die gerne von Anfängern gewählt wird, die dann gefährliches Halbwissen in den Äther pusten. Genau wegen diesem Desaster haben wir es zu verdanken, dass viele Webseiten selbst heute noch Passwörter mit MD5 hashen und dies als "Verschlüsselung" verkaufen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Stimmt schon, aber jetzt 100 Zeilen Code zu posten kann auch nicht die Lösung sein. Wir können ja schlecht die Ausbildung übernehmen.

@xFiSiRaZx am besten teilst du dir die Aufgabe erstmal auf die einzelnen Schritte auf. Sobald du einen Schritt fertig hast kannst du den Code dazu ja posten und wir zeigen dir wo du etwas verbessern kannst. Oder beantworten Fragen wenn du dabei auf ein (konkretes) Problem stößt.

Wichtig sind natürlich zuerst die Grundlagen der Sprache. Da habe ich kein gutes und aktuelles Tutorial zur Hand. Die Seite von Peter Kropff ist aber für den Einstieg ganz ok. http://www.peterkropff.de/site/php/grundlagen.htm

Die Seite ist auch für viele bei den ersten Schritten hilfreich gewesen: http://www.schattenbaum.net/php/

Daten aus der Datenbank holen

Der erste Schritt ist einfach. Ich empfehle PDO um auf die Datenbank zuzugreifen, da musst du dann zwar die Objekt-Syntax nutzen, die Methoden sind aber am intuitivsten bedienbar.

Kurze Einleitung: https://php-de.github.io/jumpto/pdo/ 

Längere Einleitung: http://www.peterkropff.de/site/php/pdo.htm

Die Abfrage um die Daten abzuholen ist für Anfänger vielleicht ein bisschen schwierig. Ist aber am Ende auch nur sowas wie

"SELECT felder FROM tabelle WHERE (aktuellesDatum - datumsSpalte) < 8"

Daten in eine Datei auf den Server schreiben

Um die Daten aus der Datenbank als CSV zu speichern könntest du ein entsprechendes SQL-Statement nutzen: https://stackoverflow.com/a/356605/3595565

Dafür müssen aber auch die Rechte, sowohl für den User des OS als auch von MySQL entsprechend gesetzt werden. Deshalb empfehle ich schon gleich den anderen Weg zu gehen:

Mit PHP ist das wegschreiben der Daten aber auch nicht schwierig, http://www.php.net/manual/de/function.fputcsv.php oder http://de2.php.net/manual/de/function.file-put-contents.php können dabei helfen. Dabei muss dann auch darauf geachtet werden, dass die Berechtigung zum Schreiben in Verzeichnis/Datei gesetzt ist (aber man spart sich die Berechtigung von MySQL aus).

Datei als Email verschicken

Zum Mailversand nochmal diesen Link: https://php-de.github.io/jumpto/mail-class/

Die bestehenden Mailerklassen nutzen am Ende auch nur die mail()-Funktion, bieten aber Komfort wenn du mehr brauchst als eine einfach Textmail und sind gut getestet und bewährt.

Bearbeitet von PVoss
Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...