JsonSQL AutoHash Demo: Artikel

🛒 Neue Produkte eingetragen:

📦 Aktuelle Inhalte der Tabelle 'artikel_hash':


<?php
$pageTitle = "JsonSQL AutoHash Demo: Artikel";

$JsonSQLpath = __DIR__ . '/../../src/JsonSQL.php';
if (!file_exists($JsonSQLpath)) {
    die("❌ Datei nicht gefunden!");
}
require_once $JsonSQLpath;

require_once __DIR__ . '/../includes/header.php';

use Src\JsonSQL;

// Datenbank und Tabelle definieren
$db = new JsonSQL(['demo' => __DIR__ . '/../testdb']);
$db->use('demo');
$table = 'artikel_hash';

// 1. Tabelle leeren oder anlegen
$db->truncate($table);

// 2. AutoHash setzen, wenn noch nicht aktiv
if (!$db->isAutohashField('id')) {
    $db->addAutohashField('id', 'sha256');
    echo "<div class='alert alert-info'>⚙️ AutoHash (sha256) für Feld 'hash' wurde gesetzt.</div>";
}

// 3. Beispielartikel einfügen (ohne 'hash' – wird automatisch erzeugt)
$produkte = [
    ['title' => 'Mauspad XXL', 'price' => 9.99],
    ['title' => 'Gaming-Maus', 'price' => 19.95],
    ['title' => 'Monitorhalterung', 'price' => 34.90],
];

echo "<h2>🛒 Neue Produkte eingetragen:</h2>";
echo "<ul class='list-group'>";
foreach ($produkte as $produkt) {
    $db->from($table)->insert($produkt);
    $newId = $db->getLastInsertId();
    echo "<li class='list-group-item'>✅ Produkt [ID $newId] wurde gespeichert: {$produkt['title']}</li>";
}
echo "</ul>";



// 4. Aktuelle Daten ausgeben
$rows = $db->from($table)->select('*')->orderBy('id')->get();

$debugger->dump($rows,$db);

echo "<h3 class='mt-5'>📦 Aktuelle Inhalte der Tabelle '$table':</h3>";
echo "<ul class='list-group'>";
foreach ($rows as $row) {
    echo "<li class='list-group-item'>";
    echo "<strong>🔐#ID: {$row['id']}</strong><br>{$row['title']} – {$row['price']} €<br>";
    echo "</li>";
}
echo "</ul>";





// 5. Quellcode anzeigen
$scriptName = basename(__FILE__); 

?>
<div class="container mt-5 mb-3">
  <hr class="shadow-lg rounded">
  <div class="accordion" id="codeAccordion">
    <div class="accordion-item">
      <h2 class="accordion-header" id="headingCode">
        <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseCode" aria-expanded="false" aria-controls="collapseCode">
          📄 Quellcode dieser Demo anzeigen (<?= htmlspecialchars($scriptName) ?>)
        </button>
      </h2>
      <div id="collapseCode" class="accordion-collapse collapse" aria-labelledby="headingCode" data-bs-parent="#codeAccordion">
        <div class="accordion-body">
          <pre class="code-block language-php"><code><?php echo htmlspecialchars(file_get_contents(__FILE__)); ?></code></pre>
        </div>
      </div>
    </div>
  </div>
</div>

<?php require_once __DIR__ . '/../includes/footer.php'; ?>