Hallo, Gast
Du musst dich registrieren bevor du auf unserer Seite Beiträge schreiben kannst.

Benutzername
  

Passwort
  





Durchsuche Foren

(Erweiterte Suche)

Foren-Statistiken
» Mitglieder: 1
» Neuestes Mitglied: Joopi
» Foren-Themen: 462
» Foren-Beiträge: 639

Komplettstatistiken

Benutzer Online
Momentan sind 14 Benutzer online
» 0 Mitglieder
» 9 Gäste
AhrefsBot, Bytespider, DotBot, Semrush, bot

Aktive Themen
Thursday - 02:00 CST: Not...
Forum: Wetter in Little Rock
Letzter Beitrag: Joopi
Vor 5 Stunden
» Antworten: 0
» Ansichten: 1
Wednesday - 17:00 CST: No...
Forum: Wetter in Little Rock
Letzter Beitrag: Joopi
Heute, 03:24
» Antworten: 0
» Ansichten: 5
Stichsäge zur Bandsäge um...
Forum: Antiheimwerker
Letzter Beitrag: Joopi
Heute, 12:17
» Antworten: 0
» Ansichten: 5
Wednesday - 13:00 CST: No...
Forum: Wetter in Little Rock
Letzter Beitrag: Joopi
Gestern, 11:32
» Antworten: 0
» Ansichten: 2
Ein-Zapfen-Eckverbindung
Forum: Antiheimwerker
Letzter Beitrag: Joopi
Gestern, 09:25
» Antworten: 0
» Ansichten: 2
Wednesday - 11:00 CST: No...
Forum: Wetter in Little Rock
Letzter Beitrag: Joopi
Gestern, 09:24
» Antworten: 0
» Ansichten: 4
Wednesday - 07:00 CST: No...
Forum: Wetter in Little Rock
Letzter Beitrag: Joopi
Gestern, 04:50
» Antworten: 0
» Ansichten: 6
Wednesday - 01:00 CST: No...
Forum: Wetter in Little Rock
Letzter Beitrag: Joopi
Gestern, 11:11
» Antworten: 0
» Ansichten: 8
Tuesday - 18:00 CST: Not ...
Forum: Wetter in Little Rock
Letzter Beitrag: Joopi
Gestern, 04:33
» Antworten: 0
» Ansichten: 7
Tuesday - 11:00 CST: Not ...
Forum: Wetter in Little Rock
Letzter Beitrag: Joopi
19-11-2024, 08:39
» Antworten: 0
» Ansichten: 5

 
  Fehlerbehandlung
Geschrieben von: Joopi - 07-01-2023, 09:51 - Forum: Programmieren - Keine Antworten

Wenn über ein HTML(PHP)-Formular Daten in eine Tabelle geschrieben werden sollen, dann sollte auch eine Fehlerbehandlung erfolgen.

Mit diesem Code-Schnipsel kann man die Fehlermeldung und die Fehlernummer anzeigen lassen, die ausgegeben werden, wenn es zu einem Fehler kommen sollte. Der Datensatz sollte dann auch nicht in der Tabelle erscheinen.

PHP-Code:
if(mysqli_error($db)) {
    echo 
"<p>Das ist der Fehler: " mysqli_error($db) . " und der Fehlercode:" mysqli_errno($db) . "</p>";
    echo 
"<a href=\"mail_add.php\"><img border=\"0\" src=\"header_button3.php?text=Mailaddi&font=4\"></a>\n";


Die Prüfung erfolgt über die Datenbankverbindugn **\$db**. Die Fehlerausgabe erfolgt mit Klartext und mit Fehlernummer.

Drucke diesen Beitrag

  Datensätze aller Tabellen in der Datenbank
Geschrieben von: Joopi - 07-01-2023, 09:49 - Forum: Programmieren - Keine Antworten

Wenn man wissen will, wie viele Datensätze in den diversen Tabellen einer Datenbank enthalten sind, kann man das mit einem Befehl ermittlen:

Code:
SELECT table_name, table_rows FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'datenbankname';

Drucke diesen Beitrag

  Datenbank erstellen
Geschrieben von: Joopi - 07-01-2023, 09:48 - Forum: Programmieren - Keine Antworten

Sofern ich Datenbanken auf der Konsole anlege, benutze ich folgenden Befehl:

Code:
CREATE DATABASE datenbankname DEFAULT CHARACTER SET utf8 COLLATE utf8mb4_general_ci;

Drucke diesen Beitrag

  Daten erfassen
Geschrieben von: Joopi - 07-01-2023, 09:47 - Forum: Programmieren - Keine Antworten

Es gibt zwei gute Möglichkeiten, um Datensätze in eine MySQL-Tabelle zu erfassen. Über **INSERT INTO** kann man entweder die **Values**-Variante nehmen (die Erfassung mehrerer Datensätze ist möglich) oder mit **SET** (es kann nur ein Datensatz erfasst werden).

Zwei Varianten der Datenerfassung:

Code:
mysql> INSERT INTO tabelle (nname, vname, erfassung) VALUES ("Mustermann","Klaus",NOW());

Code:
mysql> INSERT INTO tabelle SET nname="Mustermann", vname="Klaus", erfassung=NOW();


Erklärung:

Wie bereits oben erwähnt ist die SET-Variante ausschließlich für die Erfassung eines einzelnen Datensatzes vorgesehen. Insbesondere Neulinge, die die Syntax von MySQL noch nicht so gut beherrschen, sollten sich in der ersten Zeit mit dieser Anweisung begnügen. Ich spreche da aus Erfahrung.

Update:

Die obige Erklärung habe ich vor ca. 15 Jahren geschrieben. Heute kann ich darüber lachen. Aber wenn man von der Thematik keine Ahnung hat, dann sind die einfachen Formen der Handhabung immer noch die besten. Heutzutage kommt es produktiv nicht mehr vor, dass ich Datensätze via Konsolenbefehl in die Tabellen erfasse. Wenn ich etwas teste, dann kann das vorkommen.

Drucke diesen Beitrag

  Bestimmte Anzahl von Zeichen ausgeben
Geschrieben von: Joopi - 07-01-2023, 09:44 - Forum: Programmieren - Keine Antworten

Eine Tabelle mit einem Fließtext als Feldinhalt ist nicht besonders schön. Sofern der Text nicht maßgeblich ist, sondern nur als Füllmenge gedacht ist, macht es Sinn, die Ausgabe des Textes auf eine gewisse Anzahl Zeichen zu begrenzen. In einem SQL-Statement könnte das wie folgt aussehen:

Code:
$erg = mysqli_query($db, "SELECT id, substring(mailtext,1,250) FROM tabelle ORDER BY id");

Damit werden ab Zeichen 1 entsprechend viele Zeichen des Textes, sofern vorhanden, ausgegeben. Der Rest wird nicht angezeigt.

Dieser Teil des Statements ist der wichtig Teil:

Zitat:substring(mailtext,1,250)

Somit kann man Tabellen auch mit dem Feld für Fließtext füllen, um dem Betrachter dieses zu zeigen.

Es macht Sinn, daraus einen Teaser zu generieren, sodass vielleicht ein Link angesetzt werden kann, um den gesamten Text anzeigen zu lassen.

Drucke diesen Beitrag

  Alle Zeichen in Kleinschreibung ändern
Geschrieben von: Joopi - 07-01-2023, 09:42 - Forum: Programmieren - Keine Antworten

Wenn in einer Spalte einer Tabelle String in Groß- und Kleinschreibung vorhanden sind, dann kann man diese in einem Schwung in Kleinbuchstaben konvertieren. Die Syntax dazu ist:

Code:
UPDATE tabelle SET katname = LOWER(katname);

Das Konvertieren kann auch mit UPPER in Großbuchstaben erfolgen.

Drucke diesen Beitrag

  Wartezeit einsetzen
Geschrieben von: Joopi - 07-01-2023, 06:20 - Forum: Programmieren - Keine Antworten

Dann und wann, besonders beim Testen, kann es hilfreich sein, wenn die Ausführung des Skripts für einige Zeit ausgesetzt wird. Eine Wartezeit eben.

In Python lässt sich dieses wie folgt realisieren:


Code:
#!/usr/bin/env python3
import time

time.sleep(5)

Mit dieser Anweisung wird die Ausführung des Skripts für 5 Sekunden ausgesetzt.

Drucke diesen Beitrag

  Doku Git und GitHub
Geschrieben von: Joopi - 07-01-2023, 03:20 - Forum: Programmieren - Keine Antworten

Die Nutzung von Git und GitHub kann in Projekten von Vorteil sein. Hier dokumentiere ich, wie Git zu nutzen ist. Die Nutzung von GitHub ist sekundär, denn dieses benötige ich nur, sollte ich meine Projekte im Internet öffentlich machen wollen.

Ich nutze zum Üben die Lehrgangsreihe von The Net Ninja.





Meine eigenen Vorbemerkungen:

Es macht im Grunde genommen Sinn, dass die Projekte, an denen gearbeitet wird, zentral auf dem lokalen Rechner abgelegt werden. Somit ist auch nur ein Oberprojektordner notwendig.  Dieser Oberprojektordner wird dann wiederum mit weiteren Ordnern je Einzelprojekt bestückt. Diese Ordner werden, sofern sie von Git zu nutzen sind, später durch die Initialisierung zu Repositories. Um nämlich Git in Gänze richtig zu nutzen, müssen Git-Repositories angelegt sein.

Das bedeutet, dass in dem Projektordner ein versteckter Ordner .git angelegt wird, in dem dann alle Veränderungen nachgehalten, also getrackt, werden.



Nachdem Git installiert wurde

Code:
git config --globel user.name Tuennes


Code:
git config --globel user.email tuennes@yahoo.de

Damit ist Git personalisiert.

Um festzustellen, welcher User für Git angelegt werde, ist folgender Befehl auf der Konsole abzusetzen.

Code:
git config user.name

Projekt initialisieren

Code:
git init

Mit diesem Befehl wird das Repository initiiert. Innerhalb des Ordner bzw. des Repositories können weitere Ordner erstellt werden. Auf der Konsole kann direkt mit dem Befehl ```touch``` eine leere Textdatei erzeugt werden, z.B. index.html.

Welche Dateien sind im Repo

Code:
git status

Dieser Befehl zeigt alle im Repo vorhandenen Dateien und deren aktuellen Status.

Ein Status ist z.B. untracked. Das bedeutet, die Datei ist da, aber noch nicht in der Staging-Area enthalten.

Dateien, die noch nicht in der Staging-Area sind, werden in der Farbe Rot dargestellt. Dateien, die bereits hinzugefügt wurden, werden in der Farbe Grün angezeigt.

Die textliche Beschreibung ist aber auch ausreichend, um zu erkennen, welche Dateien hinzuzufügen sind. Das muss nicht einzeln geschehen.

Datei in Staging-Area hinzufügen

Code:
git add index.html

Um eine Datei in die Staging-Area hinzuzufügen, bedarf es nur dem vorgenannten Befehl.

Datei aus Staging-Area löschen

Code:
git rm --cached index.html

Sofern eine Datei im Repo nicht mehr benötigt wird, kann sie mit dem vorgenannten Befehl aus der Staging-Area herausgelöscht werden. Das bedeutet nicht, dass die Datei physisch gelöscht wurde. Sie ist nur nicht mehr im Repo.

Alle Dateien hinzufügen

Code:
git add .

In einem großen Projekt wäre es sehr aufwendig, wenn jede einzelne Datei, die erstellt wurde, dem Repo hinzuzufügen wäre. Mit dem vorgenannten Befehl werden alle neuen Dateien, die noch nicht im Repo sind, hinzugefügt.





Wichtig ist, dass zu bestehenden Dateien, die geändert wurden, entsprechende Mitteilungen über den Grund der Änderung, vermerkt werden. Das ist das Kommittment, welches sehr wichtig ist.

Ein Kommitment absetzen

Code:
git commit -m "added index and styles files"

Dieser Befehl ist relativ global und bezieht sich nicht auf einzelne Dateien, sondern auf die Dateien, die neu sind bzw. geändert wurden.

Die Option **-m** bedeutet, dass eine Mail erzeugt und an die Projektteilnehmer gesendet wird.

Der notwendige und wichtige Kommentar zum Kommitment wird hinter der Option in Hochkommata gesetzt und sollte die Situation erklären.

Mit diesem Kommitment wird eine eindeutige ID erzeugt, die im Repo abgespeichert wird.

Es wird eine Info ausgegeben, die u.a. enthält, wieviele Zeilen insgesamt hinzugefügt (vielleicht auch gelöscht) wurden. Werden zum Projektbeginn mehrere Dateien mit einem Kommitment belegt, so sind alle vorhandenen Zeilen in Summe dann in der Info zu sehen.

Logfiles der Kommitments ansehen

Code:
git log

Sobald z.B. bestehende Dateien verändert werden, müssen diese irgendwann wieder der Staging-Area mitgeteilt werden. Das geht über den "add"-Befehl und es wird angezeigt, welche Dateien geändert (modifiziert) wurden.

Sobald das passiert ist, sollte wieder ein Kommitment erfolgen, welches wieder geloggt wird.

Mit dem obigen Befehl, können alle abgesetzten Kommitments betrachtet werden. Allerdings werden hierbei alle Einträge im Logfile, also in der Historie, angezeigt. Das kann sehr unübersichtlich sein, wenn das Projekt groß ist.

Code:
git log --oneline

Um nicht erschlagen zu werden, wird bei der Ausführung des obigen Befehls je Kommitment nur eine Zeile ausgegeben, die eine Zusammenfassung der Veränderungen beinhaltet.



Das einfache Hinzufügen und Betrachten der Dateien bzw. der Einträge in der Log-Datei ist nicht alles, denn es werden oftmals auch Fehler gemacht, die wieder zu beheben sind.

Hier sind zum Kommitment 3 Befehle vorhanden:
  • Checkout commit
  • Revert commit
  • Reset commit

Ein Kommitment zurücknehmen

Code:
git checkout af6b84c

Sofern etwas falsch war oder zu verändern ist, kann ein Kommitment wieder zurückgenommen werden. Dazu ist über die Loghistorie die entsprechende ID zu erkunden und kann dann mit dem obigen Befehl wieder aus den Kommittments herausgenommen werden.

Die Befehle für Revert und Reset kann ich aus der englischen Erklärung heraus nicht gut verstehen. Reset ist auf jeden Fall eine eher extreme Maßnahme. Beide Befehle benötigen immer die ID des Kommitments.



Die Erstellung von Branches (Zweige oder Äste eine Baumes) ist die wohl wichtigste Eigenschaft von Git.

Neben dem Master-Branch (Info: Master wurde zu Main auf GitHub umbenannt) können beliebig viele Branches angelegt werden.

Branches sind notwendig, um neuen Code erst zu testen. Sollte er dem Projekt und den Anforderungen genügen, kann der Branch mit dem Master-Branch zusammengeführt (gemerged) werden.

Einen neuen Branch erstellen

Code:
git branch neuerbranch

Mit dem vorgenannten Befehl wurde ein Branch erstellt.

Code:
git branch -a

Um feststellen zu können, welche Branches vorhanden sind, muss obiger Befehl abgesetzt werden.

Wenn dieser Befehl abgesetzt wird, werden alle Branches gezeigt, auch der Master-Branch. Durch ein vorangestelltes Sternchen ist zu erkennen, welcher Branch gerade der aktive ist, zu dem etwas in die Staging-Area eingestellt werden kann.

Es ist wichtig, dass man sich nicht vertut und den falschen Branch bearbeitet.

Code:
git checkout neuerbranch

Damit wechselt (switcht) Git vom derzeitigen aktiven Branch zum neu ausgewählten Branch.

In diesem Branch kann all das gemacht werden, was oben beschrieben ist. Allerdings ist zu beachten, dass dieser Branch isoliert ist, da er mit dem Master-Branch nicht in Verbindung steht.

Man kann auch einen neuen Branch anlegen und diesen direkt als aktiven Branch kennzeichnen.

Code:
git checkout -b ganzneuerbranch

Damit wird der Branch angelegt und direkt aktiviert.

Einen Branch löschen

Code:
git branch -D neuerbranch

Sollte es sein, dass ein Branch bzw. dessen Dateien, nicht mit dem Master-Branch zusammengeführt werden sollen, dann dieser Branch mit der Option "-D" gelöscht werden. Wichtig ist das **große D**.



Das Zusammenführen von Branches ist wichtig, um die Arbeit anderer in den Master-Branch einzufügen.

Das sollte natürlich nur geschehen, wenn der Code richtig ist.

Um Branches in den Master-Branch bzw. den Branch, der die anderen Branches aufnehmen soll, einzufügen, muss der aufnehmende Branch aktiv sein.

Code:
git merge ganzneuerbranch

Damit wird der Branch in den Master-Branch gemerged, da der Master-Branch der aktive Branch ist.



Anmerkung:

Der Begriff Master wurde mittlerweile auf Github mit dem Begriff Main ersetzt.

Drucke diesen Beitrag

  Submodul clonen
Geschrieben von: Joopi - 07-01-2023, 03:03 - Forum: Programmieren - Keine Antworten

Heute wollte ich das Submodule eines Hugothemes in eine neue Hugoseite (Testzentrum) hinzufügen. Also flott den Befehl kopiert und nicht schlecht gestaunt:

Zitat:fatal: Kein Git-Repository (oder irgendein Elternverzeichnis bis zum Einhängepunkt /media/django)
Stoppe bei Dateisystemgrenze (GIT_DISCOVERY_ACROSS_FILESYSTEM nicht gesetzt).

Es hat dann tatsächlich drei, vier Sekunden gedauert bis mir klar geworden war, dass ich noch kein Git-Repository für die neue Hugotestseite erstellt hatte.

Mit

Code:
git init
git add .
git commit -m "blablabla"

wurde das Repository erstellt und schon funktionierte der Befehl im root-Verzeichnis der Hugoseite, um ein Submodule hinzuzufügen:

Code:
git submodule add https://github.com/hugo-toha/toha.git themes/toha
git submodule init
git submodule update

Dann ist mir eingefallen, dass bei der Nutzung von Submodulen, direkt Updates vom Theme heruntergeladen werden können:

Code:
git submodule update --remote themes/toha

Es muss aber einen Grund geben, warum der Themeautor die Info herausgegeben hat, dass das Theme als Submodule zu installieren ist und der normale Clone-Befehl das Theme nicht gut unterstützt.

Wichtig ist für mich zu wissen, und ich sollte es auch behalten, dass bei der Nutzung von Submodulen ein Git-Repository vonnöten ist. :-)

Drucke diesen Beitrag

  submodul Repository
Geschrieben von: Joopi - 07-01-2023, 03:00 - Forum: Programmieren - Keine Antworten

Über Git in Verbindung mit GitHub lassen sich Dateien, gepackte Ordner und auch Submodule für Hugo und alles andere downloaden.

Am besten wechselt man direkt in den Ordner der Hugo-Seite und setzt dann den entsprechenden Befehl ab.

Die Syntax für den Download eines Submoduls ist wie folgt:

Code:
git init
git submodule add https://github.com/budparr/gohugo-theme-ananke.git ./themes/ananke

Danach ist das Theme in Hugo bzw. in der Datei config.toml einzubinden:

Code:
echo ‘theme = “ananke”’ >> config.toml

Drucke diesen Beitrag