Ich habe folgenden Code mit grundlegenden Prüfbedingungen, der verwendet wird, um Daten mit mysql und php zu filtern.Kann versuchen, Anweisungen zu fangen, die innerhalb der benutzerdefinierten PHP-Funktion geschrieben werden.
Ich habe zwei Verfahren genannt proc_report und proc_report_filtered ein, die alle Daten und eine, die Daten von und zu den Filtern basierend auf anzeigt wird in Form eingestellt. (submit_filter ist Name Button einreichen, von und zu sind zwei Eingabefelder in der Form.)
Bisher war die Verwendung im Code zu arbeiten und alle Daten anzuzeigen, wenn try und catch-Anweisungen geschrieben werden, an Ort und Stelle von display_default_data(); in anderen Abschnitten. Aber um den Code zu verkürzen, habe ich die Funktion display_default_data() benutzt, um das gleiche Stück Code immer wieder neu schreiben zu müssen. Aber überraschenderweise sehe ich keine Ergebnisse, wenn ich diesen Code ausführe.
<?php
function display_default_data()
{
try {
$records = $db->query("call proc_report");
$records->setFetchMode(PDO::FETCH_ASSOC);
} catch (PDOException $e) {
die("Some problem getting data from database !!!" . $e->getMessage());
}
}
if (isset($_POST['submit_filter'])) {
if (isset($_POST['from'], $_POST['to'])) {
if (!empty($_POST['from']) && !empty($_POST['to'])) {
try {
$from = $_POST['from'];
$to = $_POST['to'];
$records = $db->prepare("CALL proc_report_filtered(?,?)");
$records->execute(array($from, $to));
} catch (PDOException $e) {
die("Some problem getting data from database !!!" . $e->getMessage());
}
} else {
echo "Enter some values before pressing Filter button !";
display_default_data();
}
} else {
echo "Please set values ";
display_default_data();
}
} else {
display_default_data();
}
?>
Ist dies die Schreibweise Funktionen zu verwenden und versuchen, Anweisungen in PHP zu fangen? Bitte schlage mir vor, wenn ich irgendwo falsch liege.
Auch ich fühle den Code ist ziemlich lang? Irgendwelche besseren Vorschläge, um es zu verkürzen?
Es sieht kompakt aus, aber wir vermissen nicht, um zu überprüfen, ob die Variablen isset sind und die Übergabeschaltfläche gedrückt wird (isset submit_filter in meinem Fall) –
Nein, wir sind nicht. Nennen Sie einen einzelnen Grund, warum wir diese Überprüfungen benötigen. –
Ich habe isset mit submit_filter verwendet, um zu überprüfen, ob die Schaltfläche angeklickt ist. Da wir den Code nur ausführen müssen, wenn auf die Schaltfläche geklickt wird. Außerdem wird überprüft, ob Werte von from und to gesetzt sind oder nicht. Der Code, den Sie perfekt vorgeschlagen haben, aber ich würde gerne wissen, warum isset nicht verwendet wird. In Tutorials habe ich Leute gesehen, die es benutzen und gute Praxis sagen, um beide zu benutzen und nicht leer. Kannst du bitte die Wichtigkeit von isset erklären? Auch eine letzte Frage. Sie haben auch übersprungen ($ records-> setFetchMode (PDO :: FETCH_ASSOC);) muss nicht immer den fetchmode angeben? –