это то, как у меня есть выпадающее меню, и если я возьму один из них, поскольку у меня есть меню вниз, то наступает единственный форвард с ошибками все время.
он появляется только с ошибками и обеспечивает только ошибку, поэтому я не могу двигаться дальше.
PHP
if ($stmt = $this->mysqli->prepare('SELECT navn FROM fms_styrkemaal WHERE navn != ?')) {
$stmt->bind_param('s', $navn);
$navn = $_POST["styrkemaal"];
$stmt->execute();
$stmt->bind_result($navn);
while ($stmt->fetch()) {
$error = 1;
}
$stmt->close();
} else {
echo 'Der opstod en fejl i erklæringen: ' . $this->mysqli->error;
}
if ($stmt = $this->mysqli->prepare('SELECT navn FROM fms_kon WHERE navn != ?')) {
$stmt->bind_param('s', $navn);
$navn = $_POST["kon"];
$stmt->execute();
$stmt->bind_result($navn);
while ($stmt->fetch()) {
$error = 1;
}
$stmt->close();
} else {
echo 'Der opstod en fejl i erklæringen: ' . $this->mysqli->error;
}
if ($stmt = $this->mysqli->prepare('SELECT uger FROM fms_uger WHERE uger != ?')) {
$stmt->bind_param('s', $uger);
$uger = $_POST["uger"];
$stmt->execute();
$stmt->bind_result($uger);
while ($stmt->fetch()) {
$error = 1;
}
$stmt->close();
} else {
echo 'Der opstod en fejl i erklæringen: ' . $this->mysqli->error;
}
html/php
<select name="kon">
<?php
if ($stmt = $this->mysqli->prepare('SELECT id, navn FROM fms_kon')) {
$stmt->execute();
$stmt->bind_result($id, $navn);
while ($stmt->fetch()) {
?>
<option value="<?php echo $navn;?>"><?php echo $navn;?></option>
<?php
}
$stmt->close();
}
?>
</select>
<select name="uger">
<?php
if ($stmt = $this->mysqli->prepare('SELECT id, uger FROM fms_uger')) {
$stmt->execute();
$stmt->bind_result($id, $uger);
while ($stmt->fetch()) {
?>
<option value="<?php echo $uger;?>"><?php echo $uger;?></option>
<?php
}
$stmt->close();
}
?>
</select>
<select name="styrkemaal">
<?php
if ($stmt = $this->mysqli->prepare('SELECT id, navn FROM fms_styrkemaal')) {
$stmt->execute();
$stmt->bind_result($id, $navn);
while ($stmt->fetch()) {
?>
<option value="<?php echo $navn;?>"><?php echo $navn;?></option>
<?php
}
$stmt->close();
}
?>
</select>
1.) Ваша функция уязвима для SQL-инъекции, вы всегда должны избегать своих данных, прежде чем включать ее в SQL-запрос.
2.) Вы привязываетесь к переменной, которая не имеет значения.
3.) Вы выполняете сравнение строк, например сравнение значений.
Попробуй это:
...
// This is really bad practice...
$navn = $_POST["styrkemaal"];
...
try {
if ($stmt = $this->mysqli->prepare("SELECT navn FROM fms_styrkemaal WHERE navn like ':v_navn'")) {
$stmt->bind_param(':v_navn', $navn, PDO::PARAM_STR);
$stmt->execute();
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
print_r($row);
}
$stmt->close();
} else {
echo 'Der opstod en fejl i erklæringen: ' . $this->mysqli->error;
}
} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}
$error = 1