PHP MySQL Date Range Search with jQuery DatePicker klappt leider nicht.

DerTrojaner

Mitglied
Moin moin zusammen,

ich stehe vor einem Hindernis gerade. Und zwar möchte ich gerne zwischen Datum "a" und "b" einen Datensatz ausgeben so wie hier im Bsp: Demo PHP MySQL Date Range Search with jQuery DatePicker

Ich habe mir die Datei vom Beispiel runtergeladen und so in meinen Quellcode reingebaut das es eigentlich klappen sollte, aber leider tut sich nichts außer das er dann in ein Formular reingeht was er eigentlich nicht machen sollte und ich habe keine Daten mehr auf zulauf.php (hauptseite). (er geht ins bearbeiten.php nachdem ich auf search drücke).

Leider weiß ich nicht genau was ich falsch mache. Ich will es so wie im Beispiel das alle Datensätze angezeigt werden und sobald ich dann Datum "a" und "b" eingebe nur der Datensatz angezeigt wird.

Ich vermute mal es liegt an der SQL-Anweisung, weil ich ja einmal $result und einmal $date_result habe das er deswegen nichts anzeigt.
Aber leider habe ich keine Idee mehr wie ich es am besten umsetzten kann, dass alles richtig ist.

Danke im voraus.

PHP:
<!DOCTYPE html>
<html>
    <head>
        <title>Betriebstagebuch</title>
        <link rel="stylesheet" type="text/css" href="style.css">
        <script type='text/javascript' src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
            <link rel="stylesheet" href="http://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
        <script src="Javascript.js"></script>
    </head>
    <body>
<!--- Sidebar / Sidenav ---------------------------------------------------------------------------------------------------------------------------------------------------->
        <nav class="sidenav" id="sidebar">
            <a href="#" id="hidebtn" onclick="hide()"> &laquo;</a>
                <ul>
                    <li><b><a href="zulauf.php">Zulauf</a></b></li>
                    <li><b><a href="#abb">ABB</a></b></li>
                    <li><b><a href="#becken2">Becken 2</a></b></li>
                    <li><b><a href="#becken3">Becken 3</a></b></li>
                    <li><b><a href="#teich">Teich</a></b></li>
                </ul>
        </nav>
            <a href="#" id="showbtn" onclick="show()"> &raquo;</a>
<!---SQL-Standard für Zulauf ----------------------------------------------------------------------------------------------------------------------------------------->
                <?php require_once("index.php");

                $db_con = mysqli_connect($servername, $username, $password, $dbname);
                $sql = "SELECT *, date_format(tag, '%d-%m-%Y') AS Tag FROM zulauf";
                $result = mysqli_query($db_con, $sql);

                $summe = "SELECT SUM(`Wert`) AS Wert FROM zulauf";
                $erg = mysqli_query($db_con, $summe);
                $row = mysqli_fetch_assoc($erg);

        /*        if (!$result){
                    die ('Etwas stimmte mit dem Query nicht: '.$db_con->error);
                    }
                    echo 'Die Tabelle besitzt '.$result->num_rows." Datensätze<br />\n";
        */
//------------------------------- Page/Seite     --------------------------------------------------------------------------------------------------------------------->
    $total_pages = $db_con->query("SELECT COUNT(*), date_format(tag, '%d-%m-%Y') AS Tag FROM zulauf ORDER BY `zulauf`.`Tag` DESC ")->fetch_row()[0];
    $page = isset($_GET['page']) && is_numeric($_GET['page']) ? $_GET['page'] : 1;
    $num_results_on_page = 31;

    if ($stmt = $db_con->prepare("SELECT *,date_format(tag, '%d-%m-%Y') AS Tag FROM zulauf ORDER BY `zulauf`.`Tag` DESC LIMIT ?,?")) {
            // Calculate the page to get the results we need from our table.
            $calc_page = ($page - 1) * $num_results_on_page;
            $stmt->bind_param('ii', $calc_page, $num_results_on_page);
            $stmt->execute();
            // Get the results...
            $result = $stmt->get_result();
            $stmt->close();
}

//---------- SEARCHER -----------------------------------------------------------------
    $post_at = "";
    $post_at_to_date = "";
    $queryCondition = "";
    if(!empty($_POST["search"]["post_at"])) {
        $post_at = $_POST["search"]["post_at"];
        list($fid,$fim,$fiy) = explode("-",$post_at);

        $post_at_todate = date('Y-m-d');
        if(!empty($_POST["search"]["post_at_to_date"])) {
            $post_at_to_date = $_POST["search"]["post_at_to_date"];
            list($tid,$tim,$tiy) = explode("-",$_POST["search"]["post_at_to_date"]);
            $post_at_todate = "$tiy-$tim-$tid";
        }

        $queryCondition .= "WHERE post_at BETWEEN '$fiy-$fim-$fid' AND '" . $post_at_todate . "'";
    }

    $date_abfrage = "SELECT * from zulauf " . $queryCondition . " ORDER BY post_at desc";
    $date_result = mysqli_query($db_con,$date_abfrage);
?>


<!--- Button-anlegen ---------------------------------------------------------------------------------------------------------------------------------------------------------------->
            <button id="button1_anlegen" onclick="location.reload();location.href='eintrag.php'" >Neuen Datensatz anlegen</button>

<!-- searcher-INPUT FIELD     --------------------------------------------------------------------------------------------------------------------->

<!--- Tabelle ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
        <form method='post' action='bearbeiten.php'>
<!-- searcher     --------------------------------------------------------------------------------------------------------------------->
            <form name="frmSearch" method="post" action="">
                    <div id="search_input">
                        <input type="text" placeholder="Von Datum:" id="post_at" name="search[post_at]"  value="<?php echo $post_at; ?>" class="tcal" />
                        <input type="text" placeholder="Bis Datum:" id="post_at_to_date" name="search[post_at_to_date]" value="<?php echo $post_at_to_date; ?>" class="tcal"  />
                        <input type="submit" name="go" value="Search" >
                    </div>

            </form>
            <?php if(!empty($date_result))     { ?>
                <table>
                    <tr>
                        <th>Tag</th>
            <!--    <th>Wochentag</th> ---->
                        <th>Uhrzeit</th>
                        <th>Wert</th>
                        <th>Lufttemp. in °C</th>
                        <th>Abwassertemp. in °C</th>
                        <th>pH-Wert</th>
                        <th>Flotation</th>
                        <th>Zulauf</th>
                  </tr>

                    <?php
                        while ($dsatz = mysqli_fetch_array($result)) {
                    ?>
                        <tr>
                          <td><?php echo $dsatz['Tag']; ?></td>
                    <!--<td><?php #echo $dsatz['Wochentag']; ?></td>---->
                            <td><?php echo $dsatz['Uhrzeit']; ?></td>
                            <td><?php echo number_format($dsatz['Wert'], 0, ',', '.'); ?></td>
                            <td><?php echo str_replace('.', ',', $dsatz['Lufttemperatur']). ' °C'; ?></td>
                            <td><?php echo str_replace('.', ',', $dsatz['Abwassertemperatur']). ' °C'; ?></td>
                            <td><?php echo str_replace('.', ',', $dsatz['pH_Wert']); ?></td>
                            <td><?php echo $dsatz['Flotation']; ?></td>
                            <td><?php echo $dsatz['Zulauf']; ?></td>
                            <td><input type='radio' name='auswahl' value='<?= $dsatz['Tag']; ?>'></td>
                            </tr>
                    <?php

                }
                    ?>
                </table>
            <?php } ?>
<!--Summe ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
                <div id="Summe">
                    Summe:
                    <?php
                        echo number_format($row['Wert'], 0, ',', '.'); ;
                    ?>
                </div>
<!-- Page/Seiten --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
                <?php if (ceil($total_pages / $num_results_on_page) > 0): ?>
                        <ul class="pagination">
                            <?php if ($page > 1): ?>
                            <li class="prev"><a href="zulauf.php?page=<?php echo $page-1 ?>">Prev</a></li>
                            <?php endif; ?>

                            <?php if ($page > 3): ?>
                            <li class="start"><a href="zulauf.php?page=1">1</a></li>
                            <li class="dots">...</li>
                            <?php endif; ?>

                            <?php if ($page-2 > 0): ?><li class="page"><a href="zulauf.php?page=<?php echo $page-2 ?>"><?php echo $page-2 ?></a></li><?php endif; ?>
                            <?php if ($page-1 > 0): ?><li class="page"><a href="zulauf.php?page=<?php echo $page-1 ?>"><?php echo $page-1 ?></a></li><?php endif; ?>

                            <li class="currentpage"><a href="zulauf.php?page=<?php echo $page ?>"><?php echo $page ?></a></li>

                            <?php if ($page+1 < ceil($total_pages / $num_results_on_page)+1): ?><li class="page"><a href="zulauf.php?page=<?php echo $page+1 ?>"><?php echo $page+1 ?></a></li><?php endif; ?>
                            <?php if ($page+2 < ceil($total_pages / $num_results_on_page)+1): ?><li class="page"><a href="zulauf.php?page=<?php echo $page+2 ?>"><?php echo $page+2 ?></a></li><?php endif; ?>

                            <?php if ($page < ceil($total_pages / $num_results_on_page)-2): ?>
                            <li class="dots">...</li>
                            <li class="end"><a href="zulauf.php?page=<?php echo ceil($total_pages / $num_results_on_page) ?>"><?php echo ceil($total_pages / $num_results_on_page) ?></a></li>
                            <?php endif; ?>

                            <?php if ($page < ceil($total_pages / $num_results_on_page)): ?>
                            <li class="next"><a href="zulauf.php?page=<?php echo $page+1 ?>">Next</a></li>
                            <?php endif; ?>
                        </ul>
                <?php endif; ?>
<!-- Bearbeiten-Button ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------>
                <button id="button2_bearbeiten" type='submit' value='Ausgewählten Datensatz bearbeiten' name='button2_bearbeiten' />Auswahl bearbeiten</button>
            </form>
        <!------------------------------------------------------------------>
    </body>
</html
 
er geht ins bearbeiten.php nachdem ich auf search drücke
Du hast da zwei Formulare verschachtelt:
Code:
<!--- Tabelle ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
        <form method='post' action='bearbeiten.php'>
<!-- searcher     --------------------------------------------------------------------------------------------------------------------->
            <form name="frmSearch" method="post" action="">
                    <div id="search_input">
                        <input type="text" placeholder="Von Datum:" id="post_at" name="search[post_at]"  value="<?php echo $post_at; ?>" class="tcal" />
                        <input type="text" placeholder="Bis Datum:" id="post_at_to_date" name="search[post_at_to_date]" value="<?php echo $post_at_to_date; ?>" class="tcal"  />
                        <input type="submit" name="go" value="Search" >
                    </div>

            </form>
            
        // weiter unten kommt dann das zweite </form>
Ob das valide ist, habe ich nicht gecheckt, auf jeden Fall ist es nicht empfehlenswert und geeignet, Verwirrrung zu stiften. Ich empfehle, beides, Suche und Bearbeiten, zu trennen.
 
Zurück