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: 528
» Foren-Beiträge: 759

Komplettstatistiken

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

Aktive Themen
Wednesday - 08:00 CDT: No...
Forum: Wetter in Little Rock
Letzter Beitrag: Joopi
Vor 9 Stunden
» Antworten: 0
» Ansichten: 2
Tuesday - 01:00 CDT: Not ...
Forum: Wetter in Little Rock
Letzter Beitrag: Joopi
26-08-2025, 09:45
» Antworten: 0
» Ansichten: 10
Monday - 00:00 CDT: Not a...
Forum: Wetter in Little Rock
Letzter Beitrag: Joopi
25-08-2025, 08:40
» Antworten: 0
» Ansichten: 19
Saturday - 21:00 CDT: Not...
Forum: Wetter in Little Rock
Letzter Beitrag: Joopi
24-08-2025, 06:07
» Antworten: 0
» Ansichten: 35
Sunday - 10:00 CDT: Not a...
Forum: Wetter in Little Rock
Letzter Beitrag: Joopi
17-08-2025, 06:43
» Antworten: 0
» Ansichten: 49
Monday - 03:00 CDT: Not a...
Forum: Wetter in Little Rock
Letzter Beitrag: Joopi
11-08-2025, 11:25
» Antworten: 0
» Ansichten: 57
Sunday - 16:00 CDT: Not a...
Forum: Wetter in Little Rock
Letzter Beitrag: Joopi
11-08-2025, 12:47
» Antworten: 0
» Ansichten: 55
Sunday - 11:00 CDT: Not a...
Forum: Wetter in Little Rock
Letzter Beitrag: Joopi
10-08-2025, 07:10
» Antworten: 0
» Ansichten: 55
Sunday - 03:00 CDT: Not a...
Forum: Wetter in Little Rock
Letzter Beitrag: Joopi
10-08-2025, 12:09
» Antworten: 0
» Ansichten: 61
Friday - 07:00 CDT: Not a...
Forum: Wetter in Little Rock
Letzter Beitrag: Joopi
08-08-2025, 04:28
» Antworten: 0
» Ansichten: 66

 
  Aktuelles Verzeichnis ermitteln
Geschrieben von: Joopi - 09-01-2023, 03:27 - Forum: Programmieren - Keine Antworten

Für weitere Arbeiten mit PHP muss ich in der Lage sein, das aktuelle Verzeichnis zu ermitteln. Das geht relativ einfach mit folgendem Befehl, der das Verzeichnis auch direkt ausgibt:

PHP-Code:
echo "<p>Das ist das aktuelle Verzeichnis: " getcwd() . "</p>"

Oder, wenn das aktuelle Verzeichnis in einem HTML-Code eingebettet werden soll:

PHP-Code:
<p>Das ist das aktuelle Verzeichnis" . <?php echo getcwd(); ?> . "</p>; 

Drucke diesen Beitrag

  Javascript online einbinden
Geschrieben von: Joopi - 09-01-2023, 03:26 - Forum: Programmieren - Keine Antworten

Der Eintrag im HEAD-Tag einer Webseite, um Jquery alias JavaScript einzubinden, kann auch mit einer Online-Variante gefüllt werden. Das hat den Vorteil, dass man direkt auf eine neuere Version umstellen kann. Der Nachteil ist, dass, wenn man auf localhost arbeitet, bei fehlender Internetverbindung keine Einbindung hat.

PHP-Code:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"\></script

Ich muss nur auf dem laufenden bleiben, ab wann sich die Version ändert und ab wann eine Übernahme der neuen Version sinnvoll ist.

Drucke diesen Beitrag

  CSV im Array nutzen
Geschrieben von: Joopi - 09-01-2023, 03:14 - Forum: Programmieren - Keine Antworten

Die Nutzung von CSV-Datei beim Aufbau meines Mediencenters könnte eine große Rolle spielen.

CSV-Dateien können über bestimmte Funktionen in PHP entweder als ganze Datei ausgeben oder in Arrays gespeichert werden.

Hier sind die Codes für beide Varianten.

CSV-Datei insgesamt einlesen und ausgeben

PHP-Code:
<h1 class="w3-text-teal">Eine CSV-Datei komplett einelesen</h1> <!-- Das ist der Haupteintrag -->

<?
php
$row 
1;
if ((
$handle fopen("csv_test.csv""r")) !== FALSE) {
    while (($data fgetcsv($handle1000",")) !== FALSE) {
        $num count($data);
        echo "<p> $num Felder in Zeile $row: <br /></p>\n";
        $row++;
        for ($c=0$c $num$c++) {
            //echo $data[$c] . "<br />\n";
            echo $data[$c] . " | ";
        }
    }
    fclose($handle);

}
?>

CSV-Datei in ein Array einlesen und dann über die Felder ausgeben

PHP-Code:
<p>Die CSV-Datei wird in ein Array eingelesen. Die Ausgabe kann über die einzelnen Felder erfolgenDas ist genau daswas ich braucheum ggfsdas Script für die Videoplaylisten so umzustellendass ich nur ein Script für das aufbereiten der Playlisten und das Abspielen der verlinken Videos benötigeWichtig ist die Datenvorhaltung.</p>

<?
php
$handle 
fopen("csv_test.csv""r");
    while ((
$data fgetcsv($handle)) !== FALSE) {
        //var_dump($data);
    
    echo $data[0] . "<br>";
        echo $data[1] . "<br>";
        echo $data[2] . "<br>";
        echo $data[3] . "<br>";
        echo $data[4] . "<br>";  
        
}
?>

Das Einsatzgebiet der CSV-Datei, gleiches wird vielleicht auch für die XML-Datei gelten, ist bei meiner datenbanklosen Idee von großer Weite. Hier kann ich vielleicht sehr viele Einzeldateien sparen, wenn ich mein Vorhaben umsetzen kann.

Drucke diesen Beitrag

  XML-Dump in eine Datenbank einfügen
Geschrieben von: Joopi - 08-01-2023, 11:27 - Forum: Programmieren - Keine Antworten

Ich habe mich gefragt, ob es möglich ist, dass man einen XML-Dump (anstelle SQL-Dump) macht und diesen dann in MySQL wieder einfügen kann. Das geht!

Es gibt zwei Varianten, die ich ausprobiert habe:

  • Bestehende Tabelle löschen und alles neu erfassen
  • Daten an bestehende Tabelle anfügen (ID muss durchgängig sein)

Wenn die bestehende Tabelle gelöscht werden soll, dann muss in der xml-Datei folgendes enthalten sein:

Code:
<?xml version="1.0" encoding="utf-8"?>
<pma_xml_export version="1.0" xmlns:pma="https://www.phpmyadmin.net/some_doc_url/">
    <!--
    - Structure schemas
    -->
    <pma:structure_schemas>
        <pma:database name="testdb" collation="utf8_general_ci" charset="utf8">
            <pma:table name="jagd_transfersum">
                DROP TABLE IF EXISTS `jagd_transfersum`;
            </pma:table>
            <pma:table name="jagd_transfersum">
                CREATE TABLE `jagd_transfersum` (
                  `id` int(11) NOT NULL AUTO_INCREMENT,
                  `id_vorgang` int(11) DEFAULT NULL,
                  `betrag` float DEFAULT NULL,
                  `waehrung` char(10) DEFAULT NULL,
                  `erfassung` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
                  PRIMARY KEY (`id`)
                ) ENGINE=MyISAM AUTO_INCREMENT=2891 DEFAULT CHARSET=utf8;
            </pma:table>
        </pma:database>
    </pma:structure_schemas>

    <!--
    - Datenbank: 'testdb'
    -->
    <database name="testdb">
        <!-- Tabelle jagd_transfersum -->
        <table name="jagd_transfersum">
            <column name="id">1</column>
            <column name="id_vorgang">2163</column>
            <column name="betrag">3800000</column>
            <column name="waehrung">Dollar</column>
            <column name="erfassung">2012-12-08 20:02:30</column>
        </table>

Wenn die Daten zusätzlich in eine bestehende Tabelle erfasst werden sollen, dann muss der Part mit dem Lösch- bzw. Create-Befehl vorher herausgenommen werden:


Code:
<?xml version="1.0" encoding="utf-8"?>
<pma_xml_export version="1.0" xmlns:pma="https://www.phpmyadmin.net/some_doc_url/">
    <!--
    - Datenbank: 'testdb'
    -->
    <database name="testdb">
        <!-- Tabelle jagd_transfersum -->
        <table name="jagd_transfersum">
            <column name="id">1</column>
            <column name="id_vorgang">2163</column>
            <column name="betrag">3800000</column>
            <column name="waehrung">Dollar</column>
            <column name="erfassung">2012-12-08 20:02:30</column>
        </table>
        <table name="jagd_transfersum">
            <column name="id">2</column>
            <column name="id_vorgang">2433</column>
            <column name="betrag">7500000</column>
            <column name="waehrung">Dollar</column>
            <column name="erfassung">2012-12-08 22:29:48</column>
        </table>
        <table name="jagd_transfersum">
            <column name="id">3</column>
            <column name="id_vorgang">1474</column>
            <column name="betrag">7500000</column>
            <column name="waehrung">Dollar</column>
            <column name="erfassung">2012-12-09 09:43:14</column>
        </table>

Bei dieser Variante muss man die ID, die ein Autowert ist, natürlich durchgängig halten.

Drucke diesen Beitrag

  XML-Daten in Datenbank erfassen
Geschrieben von: Joopi - 08-01-2023, 11:25 - Forum: Programmieren - Keine Antworten

Ich habe ein Script gefunden, welches in der Lage ist, eine xml-Datei zu öffnen und den Inhalt in eine MySQL-Datenbank bzw. -Tabelle zu erfassen.

Die xml-Datei sieht so aus:

Code:
<?xml version="1.0" encoding="utf-8"?>
<Artikelstamm xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Artikel id="1" artnummer="1000" bezeichnung="Testprodukt1" />
  <Artikel id="2" artnummer="11000" bezeichnung="Testprodukt2" />
  <Artikel id="3" artnummer="11001" bezeichnung="Testprodukt3" />
  <Artikel id="4" artnummer="11002" bezeichnung="Testprodukt4" />
  <Artikel id="5" artnummer="11003" bezeichnung="Testprodukt5" />
</Artikelstamm>

Das PHP-Script sieht so aus:


PHP-Code:
<?php

    $filename 
'./itrunde/Artikel.xml';

    if(
file_exists($filename))
    {
        
$xml simplexml_load_file($filename);
        if(
$xml)
        {
            foreach(
$xml->Artikel AS $article)
            {
                
$abfrage "INSERT INTO xml_itrunde (id, artikelnummer, bezeichnung) VALUES ('".$article['id']."', '".$article['artnummer']."', '".$article['bezeichnung']."')";
                
$ergebnis mysql_query($abfrage);
            }
        }
    }

?>

Gefunden habe ich das Ganze hier:

XML-Datei in MySQL-Datenbank schreiben

Drucke diesen Beitrag

  Programmcode beginnen
Geschrieben von: Joopi - 08-01-2023, 11:21 - Forum: Programmieren - Keine Antworten

Ich hege einige Gedanken zu XML und möchte versuchen, über XML meine Datenbanken zu minimieren bzw. abzulösen.

Langsam, aber sicher, schaffe ich es, dass ich mich an XML gewöhne. Ich habe es lange nicht verstanden, habe am aber vergangenen Wochenende sehr viel dazu gelernt. Dazu zählte auch, wie ich XML-Dateien auslesen und darstellen sowie erstellen kann.

Alle XML-Dateien sollten mit folgender Zeile, die Prolog genannt wird, (w3schools) beginnen, muss aber nicht:

Code:
<?xml version="1.0" encoding="UTF-8"?>

Damit beginnen alle XML-Dateien und direkt im Anschluss kann man mit der Hierarchie bzw. der Struktur der Dateninhalte beginnen.
___

Prüfung:
Ein Test mit JavaScript hat nicht funktioniert. Ein analoger Programmcode von w3schools.com mit dem XMLHttpRequest auf dem Linux-Notebook hat funktioniert. Also muss ich das nochmal prüfen.

Hier ist ein analoger Code zu finden und für den Test bereit auf der lokalen Maschine:

https://www.w3schools.com/xml/xml_parser.asp

Drucke diesen Beitrag

  Der Umgang mit dem Datum
Geschrieben von: Joopi - 08-01-2023, 11:15 - Forum: Excel und LibreOffice Calc - Keine Antworten

Code:
Sub datum_erkennen_1()
'
Dim LstrDate As String
Dim LDate As Date
'
'LstrDate = "12.08.2019"
'
LstrDate = Range("C6").Value
LDate = CDate(LstrDate)
'
'MsgBox LDate
Debug.Print LDate
'
End Sub

Code:
Sub datum_erkennen_2()
'
Dim tag As Date
'
tag = CDate(Range("C6").Value)
'
'MsgBox tag
Debug.Print tag
'
End Sub

Code:
Sub datum_erkennen_3()
'
Dim tag1 As String
Dim tag2 As String
Dim tag3 As String
'
tag1 = Year(CDate(Range("C6").Value))
tag2 = Month(CDate(Range("C6").Value))
tag3 = Day(CDate(Range("C6").Value))
'
Debug.Print tag1
Debug.Print tag2
Debug.Print tag3
'
End Sub

Code:
Sub tagesdatum()
'
Debug.Print Date
Debug.Print Time
Debug.Print WeekdayName(Weekday("14.08.2019"), False, vbSunday)
Debug.Print Format("14.08.2019", "DDDD")
Debug.Print Choose(Weekday("14.08.2019"), "Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag")
'
End Sub

Code:
Sub kw_ermitteln()
'
Dim kw As Integer
'
'Aufruf der Funktion (siehe unten) mit Parameter
kw = DINKw("14.08.2019")
'
'kw = DINKw(Range("A1").value)
'
'MsgBox kw
'
Debug.Print "Kalenderwoche: " & kw
'
End Sub

Code:
Function DINKw(dat As Date) As Integer
'
Dim kw As Integer
'
kw = Int((dat - DateSerial(Year(dat), 1, 1) + ((Weekday(DateSerial(Year(dat), 1, 1)) + 1) Mod 7) - 3) / 7) + 1
'
If kw = 0 Then
'
kw = DINKw(DateSerial(Year(dat) - 1, 12, 31))
'
ElseIf kw = 53 And (Weekday(DateSerial(Year(dat), 12, 31)) - 1) Mod 7 <= 3 Then
'
kw = 1
'
End If
'
DINKw = kw
'
End Function

Drucke diesen Beitrag

  Outlook-Mail über VBA-Code versenden
Geschrieben von: Joopi - 08-01-2023, 11:12 - Forum: Excel und LibreOffice Calc - Keine Antworten

Mit einem VBA-Code ist es möglich eine Mail über Outlook abzusenden. Dabei unterscheidet man den Direktversand oder eben die Anzeige in Outlook, um noch Änderungen vorzunehmen. Im nachfolgenden Code sind alle üblichen Funktionen dargestellt, teils auskommentiert.

Code:
Sub EmailAbsenden_bunker()

Dim objOutlook As Object
Dim objMail As Object

Set objOutlook = CreateObject("Outlook.Application")
Set objMail = objOutlook.CreateItem(0)

With objMail

  .To = "deinname@deinedomain.de"
  '.CC = "deinname@deinedomain.de"
  '.BCC = "deinname@deinedomain.de"
  'Versand an mehrere Empfänger
  '.To = "deinname@deinedomain.de; zweiteEmailadresse@domain.de"
 
  .Subject = "Betreff"
 
  .Body = "Ihre Nachricht."
 
  'Versand über Outlookanzeige
  .Display        'Erstellt die Email und öffnet diese. Der Versand erfolgt anschließend manuell vom User!
 
  'Versand direkt aus dem VBA-Code heraus
  .Send        'Sendet die Email automatisch
 
  '.Attachments.Add "C:/Beispiel.xlsx"
  'Versand mehrerer Anhänge in einer Mail
  '.Attachments.Add "C:/Beispiel_1.xlsx"
  '.Attachments.Add "C:/Beispiel_2.xlsx"

End With

End Sub





Im VB-Editor muss die Objektbibliothek Microsoft Outlook 16.0 Object Library gesetzt sein.

Das Beispiel habe ich hier gefunden: 
https://www.makro-excel.de/2017/03/06/pe...versenden/

Drucke diesen Beitrag

  Zellbezug dynamisieren
Geschrieben von: Joopi - 08-01-2023, 11:09 - Forum: Excel und LibreOffice Calc - Keine Antworten

Es gibt dann und wann Gründe, einen Zellbezug zu dynamisieren. Das bedeutet, die Zelladresse ist nicht eindeutig, sondern abhängig von einem Ergebnis.

Über INDIREKT kann so ein dynamischer Zellbezug erstellt werden. Hier ein Beispiel:

Code:
=ZÄHLENWENN(INDIREKT("K12:K"&ZEILE()+SUMME(A8+3));"")

Zusammensetzung der Formel mit einem dynamischen Zellbezug.

Der dynamische Teil der Zählenwennformel setzt sich zusammen aus der Anzahl der Datensätze (also aus A8) und der Position der Formel (K8 in dem Falle).

Wenn also bis zum Ende der Tabelle Leerfelder gezählt werden sollen, dann darf das Zählen nicht über das Tabellenende hinausgehen, weil sonst die überschüssigen Zellen, die leer sind, auch gezählt werden. Der Wert von 3 wird hier hinzugerechnet, da meine Tabellen generell ab Zeile 12 beginnen, die Formel in Zeile 8 steht und somit zur Anzahl nur noch 3 hinzuzurechnen sind, um bis ans Tabellenende zu kommen.

Gefunden habe ich die Lösung hier: 
https://supportnet.de/fresh/2006/8/id1393952.asp

Drucke diesen Beitrag

  Responsive Grid
Geschrieben von: Joopi - 08-01-2023, 11:01 - Forum: Programmieren - Keine Antworten

Aus dem Internet sind jede Menge HTML5-Templates für den Download zur Verfügung. Im Grunde genommen ist es eine HTML5-Struktur mit Beispiel-Inhalt und einem responsiven Layout für die Darstellung auf verschiedenen Bildschirmen. Das ist im Grunde genommen die Krux.

Zwei Templates habe ich nun soweit analysiert, dass ich endlich verstanden habe, wie diese Templates an sich funktionieren. In Teilen konnte ich auch den CSS-Code nachvollziehen. Leider aber ist mir das nicht zu 100 % gelungen. Der HTML-Code dagegen ist recht einfach und simple nachzuvollziehen.

Alles basiert im Grunde genommen auf feste Bereiche, die meist mit DIV-Tags ausgezeichnet werden. Innerhalb dieser Bereich kann dann über das grundlegende GRID-Konstrukt, oftmals sind es 12 Spalten, ein responsives Layout erstellt werden. Wie im CSS diese Spalten (columns) tatsächlich deklariert und programmiert werden müssen, ist mir noch ein Rätsel, da es vielfach auch Abwandlungen gibt. Letztlich aber wäre mir ein einfach Layout lieb. Das ist bei vorgefertigten Layouts aber nicht immer der Fall.

Das HTML5-Template für ein Magazin ist recht kompliziert. Dennoch habe ich gerade an diesem Template verstanden, wie das mit den grids und rows und cols ineinander greift.

Ohne mich in die Tiefen der HTML-Strukturierung und Auszeichnung mit allen möglichen Tags verlieren zu wollen, ist die nachfolgende Darstellung wohl so eine Art von optimalem Vorgehen:

section

Um in einem HTML-Dokument Struktur zu haben nutzt man das Tag section. Es kann mehrere solcher Sektionen geben.

container

Der Container kann in einer Sektion mehrfach vorkommen und ist auch wieder ein in sich abgeschlossener Bereich für die Strukturierung des Dokuments.

row

Die Zeile (row) kann innerhalb eines Containers mehrfach vorkommen und ist auch hier ein in sich abgeschlossener Bereich.





In dem Mag-Template (post.html) sind mehrere Sektionen enthalten, aber innerhalb der Sektion sind jeweils nur ein Container und ein Row ausgezeichnet.





Innerhalb von Row wurden nun mit dem 12-Spalten-Layout zwei weitere Bereiche ausgezeichnet, die zum einen mit **col-md-8** und zum anderen mit col-md-4 benannt wurden. In der Summe sind das wieder 12 Spalten, denn col ist nichts anderes als eine Spalte (column). Beide Bereich umfließen sich und werden in der maximalenn Breite des Bildschirm nebeneinander dargestellt. Wäre beide Bereiche mit col12 benannt, würde sie natürlich immer untereinander stehen.

Verkleinert sich die Ausgabe auf einem Bildschirm, weil entweder das Browserfenster verkleinert wird oder das Dokument wird auf einem kleineren Ausgabegerät aufgerufen, wandert der Bereich mit den 4 Spalten nach unten, weil eben nicht mehr genügend Platz vorhanden ist. Damit ist das System des responsiven Layout erfüllt. Ist das Ausgabegerät ein Smarphone, steht grundsätzlich alles an Artikeln untereinander, die Menüs werden in Seitentaschen gepackt und können dann in den Vordergrund geholt werden.





Es versteht sich in HTML von selber, dass alle Tags zu schließen sind. Das Einrücken hat hier eine besondere Bedeutung, da bei umfangreichen Dokumenten ansonsten bei der Fehlersuche oder anderen Analyse das Chaos ausbrechen könnte.





Auch das Template Halcyonic wird nach diesem Prinzip funktionieren. Dieses Template ist allerdings nicht ganz so aufwendig wie das Magazin-Template. Hier war es relativ einfach, um die Gesamtbreite meines Bildschirms auszunutzen, wenn ein Dreispalte anzeigt wurde. Die weitere Analyse werde ich bald angehen und dann in PHP-Include-Dateien umsetzen.

Drucke diesen Beitrag