1
に渡すSQLデータベースからフィールドを取り込んだ選択フォームを使用しようとしています。データベースにストアのテーブルがあり、このメソッドを使用して、これらの個別のフィールドを選択ツールに追加しました。SQLデータベースから選択値をPHP
echo '<select name="StoreName" />'."\n";
while ($row = mysqli_fetch_assoc($distinctResult)){
echo '<option value="'.$row["StoreID"].'">';
echo $row["StoreName"];
echo '</option>'."\n";
};
echo '</select>'."\n";
正しい店舗名が選択ツールに表示が、私は、フォームデータを送信すると、フォームの値が正しく渡されません。ここでは、最初のページで:
<?php
require_once 'login.php';
$connection = mysqli_connect(
$db_hostname, $db_username,
$db_password, $db_database);
if(mysqli_connect_error()){
die("Database Connection Failed: " .
mysqli_connect_error() .
" (" . mysqli_connect_errno() . ")"
);
};
$query = "SELECT * from PURCHASE";
//echo $query;
$result = mysqli_query($connection,$query);
if(!$result) {
die("Database Query Failed!");
};
$distinct = "SELECT DISTINCT StoreName FROM PURCHASE";
$distinctResult = mysqli_query($connection,$distinct);
if(!$result) {
die("Database Query Failed!");
};
echo '<title>Output 1</title>';
echo '</head>';
echo '<body>';
echo '<h1>Required Output 1</h1>';
echo '<h2>Transaction Search</h2>';
echo '<form action="output1out.php" method="get">';
echo 'Search Store:<br/>';
echo '<br/>';
echo '<select name="StoreName" />'."\n";
while ($row = mysqli_fetch_assoc($distinctResult)){
echo '<option value="'.$row["StoreID"].'">';
echo $row["StoreName"];
echo '</option>'."\n";
};
echo '</select>'."\n";
echo '<input name="Add Merchant" type="submit" value="Search">';
echo '</form>';
mysqli_free_result($result);
mysqli_close($connection);
?>
そして、これは、出力ページです:
<?php
$transaction = $_REQUEST["StoreName"];
require_once 'login.php';
$connection = mysqli_connect(
$db_hostname, $db_username,
$db_password, $db_database);
$sql = "SELECT * FROM PURCHASE WHERE StoreName LIKE '%".$transaction."%'";
$result = $connection->query($sql);
?>
Purchases Made From <?php echo $transaction ?>
<table border="2" style="width:100%">
<tr>
<th width="15%">Item Name</th>
<th width="15%">Item Price</th>
<th width="15%">Purchase Time</th>
<th width="15%">Purchase Date</th>
<th width="15%">Category</th>
<th width="15%">Rating</th>
</tr>
</table>
<?php
if($result->num_rows > 0){
// output data of each row
while($rows = $result->fetch_assoc()){ ?>
<table border="2" style="width:100%">
<tr>
<td width="15%"><?php echo $rows['ItemName']; ?></td>
<td width="15%"><?php echo $rows['ItemPrice']; ?></td>
<td width="15%"><?php echo $rows['PurchaseTime']; ?></td>
<td width="15%"><?php echo $rows['PurchaseDate']; ?></td>
<td width="15%"><?php echo $rows['Category']; ?></td>
<td width="15%"><?php echo $rows['Rating']; ?></td>
</tr>
<?php
}
}
?>
私は出力ページにselect
名前StoreName
を呼び出していますが、それはから値を渡していません落ちる。 2番目のページでその用語を使用してクエリを実行する必要があるため、関連するデータを取得することができます。誰かが私が間違っていることを見ることができるならば、助言してください。ありがとうございました。あなたがSELECT DISTINCT StoreName FROM PURCHASE
をやっている
まだその$row["StoreID"]
はあなたの選択セットではありません。
[Little Bobby](http://bobby-tables.com/)は[あなたのスクリプトはSQLインジェクション攻撃の危険性があると言います。](http://stackoverflow.com/questions/60174/how-can -i-prevent-sql-injection-in-php)[MySQLi]の[prepared](http://en.wikipedia.org/wiki/Prepared_statement)ステートメントについて学びます(http://php.net/manual/en /mysqli.quickstart.prepared-statements.php)。 [文字列をエスケープする](http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string)でも安全ではありません! –
私が知る限り、あなたは 'mysqli_close($ connection);で接続が間に合わなくなっている可能性があります。 –
"フォームの値が正しく渡されません "、どのような価値がありますか? –