JsonSQL Autoincrement Demo: Witze

witze.system.json wurde gefunden und geladen.

📝 Neue Witze eingetragen:

📋 Aktuelle Inhalte der Tabelle 'witze':


<?php
$pageTitle = "JsonSQL Autoincrement Demo: Witze";

$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;

// Instanz und Datenbank aktivieren
$db = new JsonSQL(['demo' => __DIR__ . '/../testdb']);
$db->use('demo');
$table = 'witze';

// Tabelle aktivieren
$db->from($table);

// Systemdatei prüfen
if ($db->hasSystemConfig()) {
    echo "<div class='alert alert-success'>✅ <code>$table.system.json</code> wurde gefunden und geladen.</div>";
} else {
    echo "<div class='alert alert-warning'>⚠️ <code>$table.system.json</code> existiert noch nicht – wird automatisch beim Speichern angelegt.</div>";
}

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

// Autoincrement für "id" setzen, wenn nicht vorhanden
if (!$db->isAutoincrementField('id')) {
    $db->addAutoincrementField('id', 1);
    echo "<div class='alert alert-info'>⚙️ Autoincrement für 'id' wurde gesetzt (Startwert 1).</div>";
}

// Beispiel-Witze einfügen
$witze = [
    ['text' => "Warum können Geister so schlecht lügen? Weil man durch sie hindurchsieht."],
    ['text' => "Was ist orange und läuft durch den Wald? Eine Wanderine."],
    ['text' => "Was macht ein Pirat am Computer? Er drückt die Enter-Taste."],
];

echo "<h2>📝 Neue Witze eingetragen:</h2><ul class='list-group'>";
foreach ($witze as $eintrag) {
    $db->from($table)->insert($eintrag);
    $newId = $db->getLastInsertId();
    echo "<li class='list-group-item'>✅ Witz <strong>[ID $newId]</strong> wurde gespeichert: {$eintrag['text']}</li>";
}
echo "</ul>";

// Tabelle anzeigen
echo "<h3 class='mt-5'>📋 Aktuelle Inhalte der Tabelle '$table':</h3><ul class='list-group'>";
$rows = $db->from($table)->select('*')->orderBy('id')->get();
foreach ($rows as $row) {
    echo "<li class='list-group-item'><strong>[#{$row['id']}]</strong> {$row['text']}</li>";
}
echo "</ul>";

// Code-Ansicht
$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'; ?>