2016-03-23 18 views
0

私の日のように見えます。あなたが気分を良くするなら、あなたはおそらく私の仕事を(グラフィックデザイナーとして、しかし人々はプログラミングが同じではないことを忘れているように見えるように)助けてくれるだろう。フォームからの入力を変数として使用してMySQLデータベースからデータを取得する

私の以前の質問はうまく答えられ、今すぐ動作します。しかし、私はテキスト入力フィールドでこのフォームの変数SOMETHINGを設定できるようにしたいと考えています(製品の名前を入力すると、すべてのデータが表示されます)。

<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> 

<?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をを持っている:私は今、変数のハードコードで得たものを

私はtestdb.phpのように定義しようとしました:

$something = $_POST['SOMETHING']; 

他の変数と一緒に私に空の結果を与える。何か案は?再度、感謝します!あなたが$_POST['SOMETHING']変数を使用したい場合、あなたはあなたの要求の実行中にそれを置くことができます

+0

変更 '$ stmt->実行([ "SOMETHING"]);' '$ stmt->(実行するために$ _POST ["SOMETHING"]); ' – Saty

+0

' $ stmt-> execute(["SOMETHING"]); 'あなたはそのフォームの内容ではなく文字列を実行します。 POST配列から取得する必要があります: '$ stmt-> execute($ POST ['SOMETHING']);はそのトリックを行うべきです。 – Qirel

答えて

-1

$stmt->execute([$_POST['SOMETHING']]); 

は前にPOST変数をチェックすることを忘れないでください:ユーザーの入力を信用したことがありません! ;)

EDIT:@Qirelが言うように、変数の検証は、プリペアドステートメントを使用して必要はありません

+1

OPは準備済みのステートメントを使用しているため、彼はユーザー入力を信頼していません;-) – Qirel

+0

今すぐコードを再生しても、エラーは返されませんが、データは返されません...結果のページは完全に空です、私は手動で実行する特定の変数を入力しない限り...任意のアイデア? :) –

+0

あなたが正しくサーバーにPOSTを送るかどうかをチェックします( '$ ['SOMETHING']'の 'echo')。 – ellirdnaw

関連する問題