Channel Apps

navigation

BlogAnleitungen/TutorialsLese-Log
Es gibt gesamt 11 Artikel
Anleitungen/Tutorials - Wähle doch eine Kategorie zur besseren Übersicht
📊 Artikel pro Kategorie: - Android: 1 Artikel - Datenbank: 5 Artikel - Fediverse: 1 Artikel - GrapheneOS: 1 Artikel - Hubzilla: 11 Artikel - Nextcloud: 1 Artikel - Tutorials: 11 Artikel

Diesmal werden alle vorhandenen Kategorien einzeln ausgezählt und sortiert angezeigt, folgender Code teil muss angepasst werden:

$params[$ph] = "https://voidofxulub.com/cards/warzazel?cat={$cat}";
}

Screenshot der Ausgabe, es werden alle Kategorienamen namentlich angezeigt und dahinter jeweils die gezählten Einträge

/* --------------------------------------------------------------
Verbindung zur Datenbank (wie bisher)
-------------------------------------------------------------- */
$host = 'localhost';
$dbname = '...';
$user = '...';
$password = '...';

try {
$pdo = new PDO(
"mysql:host=$host;dbname=$dbname;charset=utf8mb4",
$user,
$password,
[PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]
);
} catch (PDOException $e) {
die('Verbindung fehlgeschlagen: ' . $e->getMessage());
}

/* --------------------------------------------------------------
Welche Kategorien willst du zählen?
Einfach das Array erweitern, wenn du neue hinzufügst.
-------------------------------------------------------------- */
$categories = [
'Belletristik',
'Holocaust',
'Krimi',
'Psychothriller',
'Thriller'
];

/* --------------------------------------------------------------
Platzhalter für das IN‑Statement bauen
-------------------------------------------------------------- */
$placeholders = [];
$params = [];

foreach ($categories as $i => $cat) {
$ph = ":cat$i";
$placeholders[] = $ph;
// Vollständige URL, wie sie in deiner Tabelle steht
$params[$ph] = "https://voidofxulub.com/cards/warzazel?cat={$cat}";
}

/* --------------------------------------------------------------
SQL‑Abfrage: Gruppiere nach URL und zähle pro Gruppe
-------------------------------------------------------------- /
$sql = "
SELECT url, COUNT(
) AS anzahl
FROM term
WHERE url IN (" . implode(', ', $placeholders) . ")
GROUP BY url
";

$stmt = $pdo->prepare($sql);

/* --------------------------------------------------------------
Parameter sicher binden
-------------------------------------------------------------- */
foreach ($params as $ph => $val) {
$stmt->bindValue($ph, $val, PDO::PARAM_STR);
}

/* --------------------------------------------------------------
Ausführen und Ergebnis verarbeiten
-------------------------------------------------------------- */
$stmt->execute();

/* --------------------------------------------------------------
Ergebnis in ein übersichtliches Array packen
-------------------------------------------------------------- */
$counts = []; // Schlüssel = Kategorie, Wert = Anzahl
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
// URL wieder in die reine Kategorie zurückübersetzen
// (wir gehen davon aus, dass das Muster immer gleich ist)
preg_match('/cat=([^&]+)/', $row['url'], $m);
$category = $m[1] ?? 'unbekannt';
$counts[$category] = (int)$row['anzahl'];
}

/* --------------------------------------------------------------
Ausgabe
-------------------------------------------------------------- */
echo "📊 Ergebnisse pro Kategorie:\n";
foreach ($categories as $cat) {
$anz = $counts[$cat] ?? 0; // falls keine Einträge gefunden wurden
echo "- $cat: $anz Einträge\n";
}

#Hubzilla #Datenbank #MySQL