Sie haben Ihre Eingabe nicht bestätigt. Daher das Problem. Überprüfen und bereinigen!
<?php
include 'db.php';
if(isset($_POST['search'])) {
$_POST['stYear'] = array_key_exists('stYear', $_POST) ? mysqli_real_escape_string($con, $_POST['stYear']) : null;
if (empty($_POST['stYear'])) {
exit('Invalid year given');
}
$sql = "SELECT * FROM socio WHERE year ='$input'";
$res = mysqli_query($con, $sql) or die($sql);
while ($row = mysqli_fetch_array($res)) {
echo 'You selected '.$input;
}
mysqli_close($con);
}
Auch, wenn Sie nur die Jahre verwenden möchten Sie in Ihrem Formular zur Verfügung gestellt haben, können Sie sie weiße Liste in_array($_POST['stYear'], ['2014-15', '2015-16', '2016-17', '2017-18', '2018-19'])
durch Zugabe. Beispiel unten:
<?php
include 'db.php';
if(isset($_POST['search'])) {
$_POST['stYear'] = array_key_exists('stYear', $_POST) && in_array($_POST['stYear'], ['2014-15', '2015-16', '2016-17', '2017-18', '2018-19']) ? $_POST['stYear'] : null;
if (empty($_POST['stYear'])) {
exit('Invalid year given');
}
$sql = "SELECT * FROM socio WHERE year ='$input'";
$res = mysqli_query($con, $sql) or die($sql);
while ($row = mysqli_fetch_array($res)) {
echo 'You selected '.$input;
}
mysqli_close($con);
}
'$ _GET' oder' $ _POST'? Sie sind auch offen für SQL-Injektionen. Wenn Sie nur die Spalte "sozio" benötigen, sollten Sie nur diese Spalte auswählen. – chris85
Mögliches Duplikat von [PHP: "Notice: Undefinierte Variable" und "Notice: Undefined Index"] (http://stackoverflow.com/questions/4261133/php-notice-undefined-variable-and-notice-undefined-index) – chris85
Hallo Ich bin nicht sicher, wo $ _GET oder $ _POST Variable auch soziales ist eine Tabelle – Krish