Excel | Lebensmittel-Datenbank: Allgemeine Suche + Filtern?

Guten Tag liebe GF-Community.

Gestern habe ich damit angefangen meine neue Lebensmittel-Datenbank zu bauen. Die "Lebensmittel-Datenbank" habe ich in eine Intelligente-Tabelle? (mit Filter) umgewandelt sodass sie ständig aktualisiert wird, wenn ich etwas hinzufüge.

Hier ein Foto:

Jetzt möchte ich das alles aber etwas komplexer gestalten.

Und zwar möchte ich mir viele Informationen auf der Startseite anzeigen lassen:

  • Zum einen die Hauptkategorien mit einer Anzahl wie viel Lebensmittel sich in dieser Kategorie eigentlich befinden.
  • Irgendwann möchte ich auch noch eine Anzeige mit Name/Hersteller (bspw. Ferrero für Nutella usw.)
  • Eine vollwertige Suche in der gesamten Datenbank für alle Namen (ID, Name, Kategorie).
  • Außerdem möchte ich auch Filtern können nach gewissen Definitionen (bspw. In Obst sind 90 Lebensmittel drin und wenn ich Obst suche das mir nur das angezeigt wird. So auch mit allen Kategorien und Namen/Marken)
  • Außerdem eine Dropdown Auswahl-Liste wo ich alles mögliche Auswählen kann. Nach ID, Name, Marke, Kategorie, Kcal, KH, Fett usw.
  • Und Ich möchte in dem Datenbank-Blatt selber eine Interne Suche nach allem mit Filterung

Die Datenbank ist folgendermaßen aufgebaut:

  1. Lebensmittel-ID
  2. Name
  3. Marke/Hersteller
  4. Hauptkategorie
  5. Unterkategorie
  6. Synonym/Bezeichnung
  7. Artikel Nr.
  8. Einheit
  9. Energie/Kcal
  10. Eiweiß
  11. Kohlenhydrate
  12. Fett
  13. Zucker
  14. Gesättigte Fettsäuren
  15. Ungesättigte Fettsäuren
  16. Mehrfach Ungesättigte Fettsäuren
  17. Ballaststoffe
  18. Alkohol
  19. Koffein
  20. Cholesterin
  21. Salz
  22. Wasser
  23. Chlorid
  24. Chrom
  25. Eisen
  26. Fluorid
  27. Jod
  28. Kalium
  29. Kalzium
  30. Kupfer
  31. Magnesium
  32. Mangan
  33. Natrium
  34. Phosphor
  35. Schwefel
  36. Selen
  37. Zink
  38. Vitamin A
  39. Vitamin B
  40. Vitamin B1
  41. Vitamin B12
  42. Vitamin B2
  43. Vitamin B3
  44. Vitamin B5
  45. Vitamin B6
  46. Vitamin B9
  47. Vitamin C
  48. Vitamin D
  49. Vitamin E
  50. Vitamin H
  51. Vitamin K
  52. Nutri-Score*

Nutri-Score*: Auch dort hätte ich gerne funktion die mir nach Eintrag jedes Lebensmittel automatisch den Nutri-Score Wert in Form von Buchstaben und Farbe anzeigt.

Und ich möchte in einem extra Blatt eine Eingabe Möglichkeit in der ich neue Daten eintragen kann und diese dann Automatisch in der Datenbank landen.

Ich kann mir vorstellen das sowas nur in Verbindung mit VBA klappt. Leider bin ich kein VBA oder gar krasser Excel Profi. Ich kenne nur einige kleine Sachen durch das Lernen von damaligen Videos die ich vor Jahren angesehen habe.

Wäre sowas irgendwie möglich? Kann mir da wer helfen oder Tipps geben?

Ich möchte das für mich Privat haben und mache das natürlich für kein Unternehmen oder so.

Vielen Dank im Voraus!

Mit freundlichen Grüßen

Robin | TechBrain.

Bild zum Beitrag
PC, Computer, Arbeit, Software, Windows, Microsoft, Office, App, Microsoft Excel, Programm, programmieren, VBA, Büro, Datenbank
MySQL: Fehlerhafte Suchanfrage?

Hallo,

ich stehe vor einer Herausforderung mit einer Windows Forms-Anwendung, die ich entwickelt habe, um Tageszeitraumstatistiken für Benutzer anzuzeigen. In dieser Anwendung gibt es ein Formular mit dem Namen TagesZeitraumStatistik, das darauf ausgelegt ist, Benutzern ihre Umsätze basierend auf ihnen zugewiesenen PIDs (Produkt-IDs) anzuzeigen.

Jedoch stieß ich auf ein Problem: Das Programm lädt nicht alle PIDs korrekt. Insbesondere scheinen einige Unter-PIDs übersprungen zu werden.

Bei der Fehlersuche mittels Debugging und Setzen von Breakpoints konnte ich beobachten, dass initial alle PIDs korrekt erfasst werden. Allerdings überspringt das Programm im weiteren Verlauf bestimmte PIDs, ohne dass ein offensichtlicher Grund dafür erkennbar ist. Leider komme ich bei dem Problem nicht wirklich weiter. Vielleicht kann mir ja hier jemand helfen.

Hier die Codeausschnitte:

public TagesZeitraumStatistik(string username, bool isAdmin, List<string> userPIDs)
{
  InitializeComponent();
  InitializeDataGridView();
  FillYearComboBox();

  this.username = username;
  this.isAdmin = isAdmin;
  this.userPIDs = userPIDs;
  this.Load += new EventHandler(TagesZeitraumStatistik_Load);

  monthCalendar1.DateSelected += MonthCalendar1_DateSelected;
  comboBoxYear.SelectedIndexChanged += ComboBoxYear_SelectedIndexChanged;
  printDocument1.PrintPage += new PrintPageEventHandler(PrintDocument1_PrintPage);

  // TextBox für den PID-Filter erstellen und konfigurieren
  textBoxPidFilter = new TextBox();
  textBoxPidFilter.Location = new Point(10, 10);
  textBoxPidFilter.Size = new Size(150, 20);
  this.Controls.Add(textBoxPidFilter);

  // LoadData-Methode aufrufen, um die Daten zu laden
  LoadData();
}

private void LoadData(DateTime? startDate = null, DateTime? endDate = null, string pidStartsWith = null)
{
  try
  {
    List<string> pidFilterList = new List<string>();

    if (!string.IsNullOrEmpty(pidStartsWith))
    {
      pidFilterList.Add(pidStartsWith);
    }

    DataTable statistikData = dbManager.GetTageszeitraumStatistikData(startDate, endDate, pidFilterList, userPIDs);
    dataGridView1.AutoGenerateColumns = false;
    dataGridView1.DataSource = statistikData;
    UpdateTotalSales(statistikData);
    UpdateSalesLabel(startDate, endDate);
  }
  catch (Exception ex)
  {
    MessageBox.Show(ex.Message, "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error);
  }
}

public DataTable GetTageszeitraumStatistikData(DateTime? startDate = null, DateTime? endDate = null, List<string> pidPrefixes = null, List<string> userPids = null)
{
  DataTable dt = new DataTable();

  using (MySqlConnection conn = new MySqlConnection(connectionString))
  {
    try
    {
      conn.Open();
      string query = @"
        SELECT Datum, FreierText1 AS PID, Name AS Nachname, EuroNetto, Belegnummer
        FROM BELEG 
        WHERE 1=1";

      if (startDate.HasValue)
      {
        query += " AND Datum >= @StartDate";
      }

      if (endDate.HasValue)
      {
        query += " AND Datum <= @EndDate";
      }

      if (pidPrefixes != null && pidPrefixes.Any())
      {
        query += " AND (";

        for (int i = 0; i < pidPrefixes.Count; i++)
        {
          query += $"FreierText1 LIKE @Pid{i}";

          if (i < pidPrefixes.Count - 1)
          {
            query += " OR ";
          }
        }

        query += ")";
      }

      if (userPids != null && userPids.Count > 0)
      {
        string pidsCondition = string.Join(",", userPids.Select(pid => $"'{pid}'"));
        query += $" AND FreierText1 IN ({pidsCondition})";
      }

      using (MySqlCommand cmd = new MySqlCommand(query, conn))
      {
        if (startDate.HasValue)
        {
          cmd.Parameters.AddWithValue("@StartDate", startDate.Value.Date);
        }

        if (endDate.HasValue)
        {
          cmd.Parameters.AddWithValue("@EndDate", endDate.Value.Date);
        }

        if (pidPrefixes != null && pidPrefixes.Any())
        {
          for (int i = 0; i < pidPrefixes.Count; i++)
          {
            cmd.Parameters.AddWithValue($"@Pid{i}", $"{pidPrefixes[i]}%");
          }
        }

        using (MySqlDataAdapter da = new MySqlDataAdapter(cmd))
        {
          da.Fill(dt);
        }
      }
    }
    catch (MySqlException ex)
    {
      throw new Exception($"Fehler beim Abrufen der Daten: {ex.Message}", ex);
    }
  }

  return dt;
}
C Sharp, Code, Datenbank, MySQL, Programmiersprache, Visual Studio, Algorithmus
Wie greife ich auf eine MySQL Datenbank zu?

Hallo :)

ich habe an ein neues Projekt gemacht, und bin jetzt absolut planlos.
Das ist alles ziemliches Neuland für mich, darum kann ich auch kaum googeln, weil ich die Basics nicht verstehe.
Ich habe im graphischen Interface von phpMyAdmin eine DB erstellt, inklusive Tabellen und alles - passt.

Dann habe ich einen Javascript code auf der Website, weil php ja bei jeder kommunikation zum Server die Seite neu laden muss.

Nun finde ich aber nur PHP Möglichkeiten, mit der Datenbank zu kommunizieren.

Ich habe auch von Ajax und Flask gelesen, aber habe kein plan wo ich die her bekomme, wie ich die auf dem Server installiere, oder wie ich die benutze. Oder muss man die überhaupt installieren?

Ich werde jedenfalls nicht ganz klug daraus, wie diese API's die Datenbank finden, weil in den Tutorials und Codes eigentlich nie eine url, ip, id oder auch nur der Datenbankname fällt (außer bei den PHP Sachen).

Kann mir vielleicht jemand einen Einsteiger - Crashkurs geben, damit ich zumindest einigermaßen verstehe, wie das alles funktioniert, und die Tutorials nicht komplett Bahnhof für mich sind?

Es geht um eine Anwendung zum Lernen. Man erstellt eine Lektion, diese wird in einer Tabelle gespeichert. Dann gibt man zu der Lektion Fragen und Antworten ein, diese werden in einer anderen Tabelle gespeichert. Dann soll man die Fragen in einem Textfeld beantworten, und dann mit der richtigen Antwort aus der Datenbank vergleichen können.

Danke.

SQL, HTML, IT, Webseite, programmieren, JavaScript, AJAX, Datenbank, Informatik, MySQL, PHP, Webentwicklung, API, phpMyAdmin
Wieso startet MySQL in Xampp nicht?

Hallo ich habe ein Problem. In Xampp kann ich Mysql nicht starten. Im Controll Panel wird folgendes angezeigt: Versuche MySQL zu starten...

16:24:54 [mysql] Statusänderung erkannt: gestartet

16:25:07 [mysql] Statusänderung erkannt: gestoppt

16:25:07 [mysql] Fehler: MySQL wurde unerwartet beendet

16:25:07 [mysql] Ursache könnte ein geblockter Port, fehlende Abhängigkeiten,

16:25:07 [mysql] fehlende Berechtigungen, ein Absturz oder ein Abbruch einer anderen Methode sein.

16:25:07 [mysql] Drücke den Logs Button um error logs zu sehen und prüfe

16:25:07 [mysql] im Windows Event Viewer für weitere Hinweise

16:25:07 [mysql] Wenn du weitere Hilfe benötigst, kopiere den kompletten Inhalt des Log Fensters

16:25:07 [mysql] und füge ihn als Ergänzung in einem neuen Forum Eintrag hinzu.

In den Logs steht: 2024-02-08 16:24:55 0 [Note] InnoDB: Mutexes and rw_locks use Windows interlocked functions

2024-02-08 16:24:55 0 [Note] InnoDB: Uses event mutexes

2024-02-08 16:24:55 0 [Note] InnoDB: Compressed tables use zlib 1.2.12

2024-02-08 16:24:55 0 [Note] InnoDB: Number of pools: 1

2024-02-08 16:24:55 0 [Note] InnoDB: Using SSE2 crc32 instructions

2024-02-08 16:24:55 0 [Note] InnoDB: Initializing buffer pool, total size = 16M, instances = 1, chunk size = 16M

2024-02-08 16:24:55 0 [Note] InnoDB: Completed initialization of buffer pool

2024-02-08 16:24:55 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=1940924999

2024-02-08 16:24:55 0 [Note] InnoDB: 128 out of 128 rollback segments are active.

2024-02-08 16:24:55 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1"

2024-02-08 16:24:55 0 [Note] InnoDB: Creating shared tablespace for temporary tables

2024-02-08 16:24:55 0 [Note] InnoDB: Setting file 'C:\realxampp\mysql\data\ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...

2024-02-08 16:24:55 0 [Note] InnoDB: File 'C:\realxampp\mysql\data\ibtmp1' size is now 12 MB.

2024-02-08 16:24:55 0 [Note] InnoDB: 10.4.27 started; log sequence number 1940925008; transaction id 8544919

2024-02-08 16:24:55 0 [Note] InnoDB: Loading buffer pool(s) from C:\realxampp\mysql\data\ib_buffer_pool

2024-02-08 16:24:55 0 [Note] Plugin 'FEEDBACK' is disabled.

2024-02-08 16:24:55 0 [Note] Server socket created on IP: '::'.

Konfigurationseinstellungen sind im Kommentar unter der Frage.

Webseite, Apache, Datenbank, MySQL, PHP, xampp
Wieso versendet dieser PHP Code die Mail nicht?

Gestern ging es noch.....

Es kommt zwar die Meldung das die Mail verschickt wurde jedoch wurde sie nicht verschickt

<?php
if(isset($_POST['submit'])) {
  $to = $_POST['to'];
  $subject = $_POST['subject'];
  $message = $_POST['message'];
  $header = "From : <//email-adresse-vom-sender>";
  if(mail($to, $subject, $message, $header)) {
    echo "Email sent successfully";
  } else {
    echo "Email failled";
  }
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <div class="container">
  <div class="form_container">
    <h3>Send Email with PHP</h3>
    <form method="post">
      <p>
        <label for="to">To:</label>
        <input type="text" name="to" placeholder="To.."/>
      </p>
      <p>
        <label for="subject">Subject:</label>
        <input type="text" name="subject" placeholder="Subject.."/>
      </p>
      <p>
        <label for="name">Message:</label>
        <input type="text" name="message" placeholder="Message.."/>
      </p>
      <button name="submit" name='submit'>Send</button>
    </form>
    </div>
    </div>
  
</body>
</html>

E-Mail, HTML, Webseite, CSS, JavaScript, HTML5, Code, Datenbank, JQuery, MySQL, PHP, Programmiersprache, Webdesign, Webentwicklung, Frontend, phpMyAdmin
Powershell Script soll keine Duplikate in der DB erstellen?

Hallo,

ich habe ein Powershell Script welches Daten von API Seiten abfragt und diese in eine Datenbank schreibt. Das funktioniert soweit auch. Leider dupliziert das Script bei jeder Abfrage die Daten in der Datenbank, dabei sollen schon vorhandene Datensätze nicht erneut geschrieben werden sondern nur neue, die auf der abgefragten Seite hinzugekommen sind. Habe verschiedene Lösungswege versucht aber nichts funktionierte. Entweder schrieb das Script trotzdem Duplikate oder es gab andere Fehlermeldungen... Kann mir jemand sagen wie ich das lösen kann?

Das Script:

# Konfiguration der Vote-Server

$voteServer = @(

   @("LINKZURAPI1", "1.Server", 3),

   @("LINKZURAPI2", "2.Server", 3)

)

# MySQL-Datenbank

$MySQLHost = "localhost"

$MySQLPort = "3306"

$MySQLDatabase = "test"

$MySQLUser = ""

$MySQLPassword = ""

# Funktion zum Überprüfen und Erstellen der Tabelle

function Ensure-DatabaseTable {

   param (

       [MySql.Data.MySqlClient.MySqlConnection]$connection

   )

   $tableName = "votings"

   $query = @"

   CREATE TABLE IF NOT EXISTS $tableName (

       id INT PRIMARY KEY AUTO_INCREMENT,

       name VARCHAR(100),

       voteAt DATE,

       server VARCHAR(100),

       site VARCHAR(100),

       received TINYINT(4) DEFAULT 0,

       coins INT DEFAULT 0

   );

"@

   $command = $connection.CreateCommand()

   $command.CommandText = $query

   $command.ExecuteNonQuery() | Out-Null

}

# Verbindung zur Datenbank

try {

   [System.Reflection.Assembly]::LoadFrom("C:\Program Files (x86)\MySQL\MySQL Connector NET 8.2.0\MySQL.Data.dll") | Out-Null

   $constr = "server=$($MySQLHost);port=$($MySQLPort);database=$($MySQLDatabase);user id=$($MySQLUser);password=$($MySQLPassword)"

   $con = New-Object MySql.Data.MySqlclient.MySqlConnection($constr)

   $maxAttempts = 5

   $attempts = 0

   while ($attempts -lt $maxAttempts -and $con.State -ne 'Open') {

       try {

           $con.Open()

       } catch {

           Write-Output "Fehler beim Verbinden zur Datenbank: $_"

       }

       $attempts++

       Start-Sleep -Seconds 1

   }

   # Verbindung erfolgreich oder nicht

   if ($con.State -ne 'Open') {

       Write-Output "Verbindung zur Datenbank konnte nicht hergestellt werden."

       Exit

   } else {

       Write-Output "Datenbankverbindung erfolgreich geöffnet."

   }

# Abfrage für die Vote Links

foreach ($server in $voteServer) {

   try {

       Write-Output "Starte Abfrage für Server $($server[1])"

       $r = Invoke-RestMethod -Method Get -Uri $server[0]

       if ($r.GetType().FullName -eq "System.String") {

           Write-Output "Abruf vom Vote-Server fehlgeschlagen (String erhalten)."

           Continue

       }

foreach ($voter in $r.data) {

   $votedatum = $voter.timestamp

   if (![System.DBNull]::Value.Equals($votedatum) -and $votedatum -ne $null -and $votedatum -ne "") {

       try {

           $date = [datetime]::ParseExact($votedatum, 'yyyy-MM-ddTHH:mm:ssZ', $null)

           $cmd = $con.CreateCommand()

           $cmd.CommandText = @"

               INSERT INTO votings (name, voteAt, server, site, received, coins)

               VALUES (@name, @voteAt, @server, @site, @received, @coins)

               ON DUPLICATE KEY UPDATE

                   name = VALUES(name),

                   voteAt = VALUES(voteAt),

                   server = VALUES(server),

                   site = VALUES(site),

                   received = VALUES(received),

                   coins = VALUES(coins)

"@

           $cmd.Parameters.AddWithValue("@name", $voter.Username) | Out-Null

           $cmd.Parameters.AddWithValue("@voteAt", $date.ToString("yyyy-MM-dd")) | Out-Null

           $cmd.Parameters.AddWithValue("@server", $server[1]) | Out-Null

           $cmd.Parameters.AddWithValue("@site", 'deutsche-arkserver') | Out-Null

           $cmd.Parameters.AddWithValue("@received", 0) | Out-Null

           $cmd.Parameters.AddWithValue("@coins", 0) | Out-Null

           $cmd.ExecuteNonQuery() | Out-Null

           Write-Output "Datensatz für $($voter.Username) erfolgreich eingefügt oder aktualisiert."

       } catch {

           Write-Output "Fehler beim Einfügen oder Aktualisieren in die Datenbank: $_"

       }

   }

}

       Write-Output "Abfrage für Server $($server[1]) erfolgreich durchgeführt."

   } catch {

       Write-Output "Fehler bei Server $($server[1]): $_"

       Write-Output $_.Exception.InnerException.StackTrace

   }

}

} catch {

   Write-Output "Fehler beim Verbinden zur Datenbank: $_"

} finally {

# Schließe die Datenbankverbindung am Ende der äußeren Schleife

if ($con.State -eq 'Open') {

   $con.Close()

   Write-Output "Datenbankverbindung erfolgreich geschlossen."

}

}

Datenbank, MySQL, PowerShell
Verschachtelte sql abfrage bzw. sortierung?

So, ich habe ein Problem.

Gerne möchte ich daten als liste aus einer datenbank laden. diese daten sollen seiten anzeigen als tabelle, diese seiten haben aber teilweise untergeordnete seiten die in der datenbank unter 'parent' die 'id' des elternelementes und diese wiederum können auch untergeordnete seiten haben.

wie gestalte ich die datenbankabfrage wenn ich die seiten anzeigen will in einer tabelle in der erst die "Höchste" nach dem 'sort' wert absteigend und zwischen diesem sort und dem nächsten "höchsten" datensatz dazwischen die unterseiten erscheinen?

hier ein bild der Tabelle:

anhin ein codeschnipsel der tabelle die ich schon habe:

<?php if (!empty($pages)): ?>
    <table>
        <thead>
            <tr>
                <th>ID</th>
                <th>Link</th>
                <th>Titel</th>
                <th>Navigationselement</th>
                <th>Aktionen</th>
            </tr>
        </thead>
        <tbody>
            <?php foreach($pages AS $page): ?>
                <tr>
                    <td><?php echo e($page->id); ?></td>
                    <td><?php echo e($page->slug); ?></td>
                    <td><?php echo e($page->title); ?></td>
                    <td><?php echo e($page->nav); ?></td> 
                    <td>
                        <form method="POST" action="./?route=admin/page/delete">
                            <input type="hidden" name="csrf_token" value="<?php echo csrf_token(); ?>" />
                            <input type="hidden" name="id" value="<?php echo e($page->id); ?>" />
                            <input type="submit" value="Löschen" class="button-as-link" />
                        </form>
                        <a href="./?route=admin/page/edit&id=<?php echo e($page->id); ?>">Editieren</a>
                    </td>
                </tr>
            <?php endforeach; ?>
        </tbody>
    </table>
<?php else: ?>
    <p>Es wurden noch keine Seiten angelegt.</p>
<?php endif; ?>
Bild zum Beitrag
SQL, Datenbank, MySQL, PHP
Nodejs mariadb Column count doesn't match value count at row 1?

meine datenbank hat 4 spalten aber ich setze nur 3 ein weil die letzte eine auto_increment spalte ist,

ich nutze nodejs mit mariadb und habe folgende fehlermeldung beim daten einsetzen:

/home/j44/Downloads/themer/tut/node_modules/mariadb/lib/misc/errors.js:64
  return new SqlError(msg, sql, fatal, info, sqlState, errno, additionalStack, addHeader);
         ^

SqlError: (conn=2420, no: 1136, SQLState: 21S01) Column count doesn't match value count at row 1
sql: INSERT INTO thread value (no, head, ts) - parameters:['1171187570193989762','rrrrrrrrrrrrrrrr',1699303276347]
    at module.exports.createError (/home/j44/Downloads/themer/tut/node_modules/mariadb/lib/misc/errors.js:64:10)
    at PacketNodeEncoded.readError (/home/j44/Downloads/themer/tut/node_modules/mariadb/lib/io/packet.js:582:19)
    at Query.readResponsePacket (/home/j44/Downloads/themer/tut/node_modules/mariadb/lib/cmd/parser.js:58:28)
    at PacketInputStream.receivePacketBasic (/home/j44/Downloads/themer/tut/node_modules/mariadb/lib/io/packet-input-stream.js:85:9)
    at PacketInputStream.onData (/home/j44/Downloads/themer/tut/node_modules/mariadb/lib/io/packet-input-stream.js:135:20)
    at Socket.emit (node:events:514:28)
    at addChunk (node:internal/streams/readable:376:12)
    at readableAddChunk (node:internal/streams/readable:349:9)
    at Readable.push (node:internal/streams/readable:286:10)
    at TCP.onStreamRead (node:internal/stream_base_commons:190:23) {
  sqlMessage: "Column count doesn't match value count at row 1",
  sql: "INSERT INTO thread value (no, head, ts) - parameters:['1171187570193989762','rrrrrrrrrrrrrrrr',1699303276347]",
  fatal: false,
  errno: 1136,
  sqlState: '21S01',
  code: 'ER_WRONG_VALUE_COUNT_ON_ROW'
}


SQL, programmieren, JavaScript, Datenbank, MySQL, node.js, Discord, Discord Bot

Meistgelesene Beiträge zum Thema Datenbank