私は、特定の地域内のすべてのチームを返す必要がある次のコードを持っています。チームと州のテーブルが入ったサッカーチームのデータベースがあります。チームテーブルには、状態テーブルへの外部キー参照があり、状態テーブルにはリージョン(north、south、east、west)の属性があります。PHP/MYSQL - オプション値は選択されていませんか?
私は私のメインページに次のHTML/PHPコードがあります。以下は
<div>
<form method="post" action="regions_filter.php">
<fieldset>
<legend>Filter Teams By Region</legend>
<select name="Region">
<?php
if(!($stmt = $mysqli->prepare("SELECT DISTINCT region FROM states"))){
echo "Prepare failed: " . $stmt->errno . " " . $stmt->error;
}
if(!$stmt->execute()){
echo "Execute failed: " . $mysqli->connect_errno . " " . $mysqli->connect_error;
}
if(!$stmt->bind_result($region)){
echo "Bind failed: " . $mysqli->connect_errno . " " . $mysqli->connect_error;
}
while($stmt->fetch()){
echo '<option value=" ' . $region . ' "> ' . $region . '</option>\n';
}
$stmt->close();
?>
</select>
<input type="submit" value="Run Filter"/>
</fieldset>
</form>
</div>
はregions_filter.phpファイルのコードです:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<body>
<div>
<table>
<tr>
<td>Teams By Region</td>
</tr>
<tr>
<td>School Name</td>
<td>State Name</td>
<td>State Capital</td>
<td>State Population</td>
<td>Region</td>
</tr>
<?php
if(!($stmt = $mysqli->prepare("SELECT teams.school_name, states.name, states.capital, states.population, states.region FROM teams
INNER JOIN states ON states.id = teams.state_id
WHERE states.region = ?"))){
echo "Prepare failed: " . $stmt->errno . " " . $stmt->error;
}
if(!($stmt->bind_param("s",$_POST['Region']))){
echo "Bind failed: " . $stmt->errno . " " . $stmt->error;
}
if(!$stmt->execute()){
echo "Execute failed: " . $mysqli->connect_errno . " " . $mysqli- >connect_error;
}
if(!$stmt->bind_result($school, $state, $capital, $population, $region)){
echo "Bind failed: " . $mysqli->connect_errno . " " . $mysqli- >connect_error;
}
while($stmt->fetch()){
echo "<tr>\n<td>" . $school . "\n</td>\n<td>" . $state . "\n</td>\n<td>" . $capital . "\n</td>\n</td>"
. $population . "\n</td>\n<td>" . $region . "\n</td>\n</tr>";
}
$stmt->close();
?>
</table>
</div>
</body>
</html>
私は私のメインの上でフィルタを実行するために行くときページ、私は結果なしでregions_filter.phpページに連れて行きます。表示されるのは、regions_filter.phpページの上部にあらかじめコード化されたhtmlテーブルだけです。 私はこのエラーが以下のコードスニペットのどこかにあると信じています。私は、オプションの値を持つさまざまなバリエーションを試してみましたが、それをクラックするように見えることはできません。
while($stmt->fetch()){
echo '<option value=" ' . $region . ' "> ' . $region . '</option>\n';
}
右方向への任意のポインタをいただければ幸いです。
@RuchishParikhのうーん、私はそれで –
を遊んでおこうあなたは正しく読み込まメインページにフォームを得るのですか?私たちはそれのサンプルを見ることができますか? – phobia82
それは、私の答えを確認してください、あなたはその領域の名前に余分なスペースを持っています –
phobia82