summaryrefslogtreecommitdiff
path: root/searchperson.php
diff options
context:
space:
mode:
authorNiklas Olmes <niklas@olmes.de>2026-04-24 19:30:00 +0200
committerNiklas Olmes <niklas@olmes.de>2026-04-24 19:30:00 +0200
commitcdea8caa5617f0cb77bcbc9803759abd2df50644 (patch)
tree2f7f1bd3af3b2396baf5403ad1a7ad00bcb7fae9 /searchperson.php
stipcrmHEADmain
Diffstat (limited to 'searchperson.php')
-rw-r--r--searchperson.php100
1 files changed, 100 insertions, 0 deletions
diff --git a/searchperson.php b/searchperson.php
new file mode 100644
index 0000000..48b1c09
--- /dev/null
+++ b/searchperson.php
@@ -0,0 +1,100 @@
+<?php
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+?>
+<?
+/* vim: set ts=4 sw=4 et : */
+
+$_search = $_GET['search'];
+$_title = "Personensuche: " . $_search;
+$_subtitle = '<p>Es wird gesucht in: Vorname (X) Nachname (X) { Email, Email-Privat, Email-Geschäftlich }, Ort, Geburtsdatum, ID.</p>';
+
+require_once __DIR__ . "/check_auth.php";
+require_once __DIR__ . "/../includes/common.php";
+require_once __DIR__ . "/lookup.php";
+include_once __DIR__ . "/header.php";
+
+doTitle();
+
+(function () use ($mysqli, $_search) {
+ $sql = '
+SELECT
+ ID AS PersID, Nachname, Vorname, Geschlecht, Ort, Email, Telefon, Handy, DATE(Geburtsdatum) AS Geburtsdatum, Ansprache, Anrede, `informale Ansprache`
+FROM Personen
+';
+ $constraint = '
+WHERE
+ CONCAT_WS(", ", Nachname, Vorname, Email) LIKE ?
+ OR CONCAT_WS(", ", Nachname, Vorname, `Email-Privat`) LIKE ?
+ oR CONCAT_WS(", ", Nachname, Vorname, `Email-Geschäftlich`) LIKE ?
+ OR CONCAT_WS(" ", Vorname, Nachname) LIKE ?
+ OR Ort LIKE ?
+ OR DATE(Geburtsdatum) LIKE ?
+ OR ID = ?
+';
+ $s = '%' . $_search . '%';
+ $stmt = $mysqli->prepare($sql . $constraint);
+ $stmt->bind_param('ssssssi', $s, $s, $s, $s, $s, $s, $_search);
+ $stmt->execute();
+ $r = $stmt->get_result();
+ if ($r->num_rows === 1 && !isset($_GET['action'])) {
+ $l = $r->fetch_object();
+ $stmt->reset();
+ $mysqli->close();
+?>
+ <script>
+ window.location = '/db/person/<?=$l->PersID?>';
+ </script>
+<?
+ exit(0);
+ }
+ $id = "personsearch";
+ $order = '[[2, "asc"], [3, "asc"]]';
+ $checkboxes = true;
+ $idcell = "PersID";
+ include __DIR__ . '/autotable.php';
+ $stmt->reset();
+
+ if (!isset($_GET['action'])) {
+ $pdf_sql = $email_sql = 'SELECT Personen.ID AS PersID, Personen.* FROM Personen WHERE ID IN ';
+ include __DIR__ . '/autoactions.php';
+ include __DIR__ . '/autoemail.php';
+ include __DIR__ . '/autopdf.php';
+ include __DIR__ . '/autoevent.php';
+ }
+})();
+
+if (isset($_GET['action'])) {
+?>
+ <div style="display: none;">
+ <form id="action" action="<?=$_GET['action']?>" method="post">
+ <input id="action_ids" name="ids" type="hidden" value="">
+ </form>
+ </div>
+
+ <script>
+<? minStart(); ?>
+ function doAction() {
+ var ids = [];
+ $('#personsearch tr.selected').each(function () {
+ ids.push($(this).attr('data-id'));
+ });
+ $('#action_ids').val(ids);
+ $('#action').submit();
+ }
+<? minEnd(); ?>
+ </script>
+ <button onclick="return doAction();">Okay, los!</button>
+<?
+}
+
+include_once __DIR__ . "/footer.php";