Похоже, что это мой день. Если вам станет лучше, вы, вероятно, поможете мне сохранить свою работу (как дизайнер GRAPHIC, но люди, похоже, забывают о программировании, это не то же самое ...).Использование ввода из формы в качестве переменной для извлечения данных из базы данных MySQL
Итак, мой предыдущий вопрос был успешно принят, и теперь все работает. Тем не менее, я хотел бы иметь возможность установить переменную SOMETHING в этой форме с текстовым полем ввода (если я ввожу имя продукта, он отображает все его данные).
Что я теперь, с переменной HARDCODED:
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbname = 'test';
$dbpass = '';
$dbcharset = 'utf8';
$dsn = "mysql:host=$dbhost;dbname=$dbname;charset=$dbcharset";
$opt = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
$pdo = new PDO($dsn, $dbuser, $dbpass, $opt);
$sql = 'SELECT Name, id, Variant, dim1 FROM products WHERE Name=?';
$stmt = $pdo->prepare($sql);
$stmt->execute(["SOMETHING"]);
$data = $stmt->fetchAll(PDO::FETCH_GROUP);
?>
<?php
foreach($data as $name => $products) {
echo $name .'<br>';
foreach($products as $row) {
echo $row['Variant'] .'<br>';
}
}
?>
Этот файл называется testdb.php, я также имею test.php, где я создал поле для ввода:
<html>
<body>
<form name='form' method='post' action="testdb.php">
Name: <input type="text" name="SOMETHING" id="SOMETHING"><br/>
<input type="submit" name="submit" value="Submit">
</form>
</body>
</html>
Я пытался определить в testdb.php это нравится:
$something = $_POST['SOMETHING'];
с другими переменными, но это только дает мне пустой результат , Есть идеи? Еще раз спасибо!
Изменить '$ stmt-> выполнить ([ "НЕЧТО"]);' 'TO $ stmt-> выполнить ($ _POST ["SOMETHING"]); ' – Saty
' $ stmt-> execute (["SOMETHING"]); 'вы выполняете строку, а не контент из этой формы. Вам нужно будет получить его из POST-массива: '$ stmt-> execute ($ _ POST ['SOMETHING']);' должен делать трюк. – Qirel