2017-12-29 11 views
0

BeispielWie kann ich Wert von Eingabe nehmen und zu Sql-Anweisung hinzufügen, wenn Seite in PHP neu laden?

<div> 
    <label>From</label> 
    <input type=date name=from value="12-12-2017"> 
    <label>To</label> 
    <input type=date name=to value="29-12-2017"> 
</div> 


$query = $conn->prepare("SELECT * FROM Users WHERE age BETWEEN **From** and **To**") 
$query->execute() 

und wie kann ich Wert vom Eingang nehmen und zu SQL-Anweisung hinzufügen, wenn Seite erstes Mal neu geladen? Vielen Dank im Voraus

+0

Daten nicht als Varchar speichern –

Antwort

1

Dies ist ein funktionierendes Beispiel für Code, der nur beim ersten Mal eingereicht wird.

Da nur PHP/MySQLi markiert sind, werden wir mit einem Beispiel gehen, wo der Benutzer eine Taste drücken muss, wenn er die Dateneingabe beendet hat.

<?php 
// session_start() has to be the first line of code 
session_start(); 

$con = new mysqli($servername, $username, $password, $dbname); 

// if there is NOT a valid POST request (means it is like a first visit) 
if (!$_POST) 
{ 
    // if the session variable is set unset it 
    if(isset($_SESSION['beenHere'])) unset($_SESSION['beenHere']); 

    echo 'Status: This is a fresh start.<br/>'; 
} 
else if(isset($_POST['from']) && isset($_POST['to']) && 
    !empty($_POST['from']) && !empty($_POST['to']) && 
    !isset($_SESSION['beenHere'])) 
{ 
    // set the session variable to an arbitrary value, it's important it is set 
    $_SESSION['beenHere'] = 'This is the first submit'; 
    // prepare the statement 
    $stmt = $con->prepare("SELECT * FROM Users WHERE age > ? AND age < ?"); 
    // turn the input variables into proper date format and bind the to the ? 
    // dates are considered strings in prepared statements 
    $stmt->bind_param("ss", date('Y-m-d',strtotime($_POST['from'])), date('Y-m-d',strtotime($_POST['to']))); 
    $stmt->execute(); 

    // Here you list all the output columns that you have. I only listed two example columns. 
    $stmt->bind_result($name, $age); 
    // loop for each returned row 
    while ($stmt->fetch()) 
    { 
     // print the results 
     printf ("%s %s\n", $name, $age); 
    } 
} 
?> 

<!-- Leave the action empty to POST to self --> 
<form action="" method="POST"> 
    <div> 
    <label>From</label><input type="date" name="from" value="" /> 
    <label>To</label><input type="date" name="to" value="" /> 
    </div> 
    <input type="submit" value="clickToEnter" /> 
</form> 

HINWEIS: Für fortgeschrittenere Beispiele Sie javascript/jQuery in der Lage sein greifen konnte die Session-Variable Client-Seite zu setzen. Dann müssten Sie nicht POST, weil Sie wertvolle Informationen in der $_SESSION speichern und beim Laden der Seite überprüfen können.

Verwandte Themen