summaryrefslogtreecommitdiff
path: root/searchperson.php
blob: 48b1c091edee9bbba6fd56bdbbf27ac43536a09d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
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";