sql-PHPはドロップダウンリストから次のファイルに投稿しません
PHPとSQLを使用してデータベースを作成し、人々の現在の場所を保存しています。ページの1つについて、SQLデータベースから可能なすべての場所にロードし、ドロップダウンリストに配置しています。ユーザーが希望の場所を送信すると、クエリが実行される次のPHPファイルにPOSTすることになりますが、これは実行できません。
<form action=droplocationget.php method="post">
<?php
$server = 'XXXXXXXX';
$connectionInfo = array("Database"=>"XXXXXXX");
$conn = sqlsrv_connect($server,$connectionInfo);
$Getloc = "SELECT DISTINCT Location FROM CurrentData";
$results = sqlsrv_query($conn, $Getloc);
echo "<select id='location' name='location'>";
while($row = sqlsrv_fetch_array($results, SQLSRV_FETCH_ASSOC))
{
echo "<option value=''>".$row['location']."</option>";
}
echo "</select>";
?>
<input type = "submit" value="Find">
</form>
受信コードは次のとおりです:
?php
$server = 'XXXXXXXXX';
$connectionInfo = array("Database"=>"XXXXXXX");
$conn = sqlsrv_connect($server,$connectionInfo);
$NewLocation = "'". $_POST['Location']."'";
$describeQuery="select Username, Firstname, Lastname, Location from
CurrentData WHERE Location = $NewLocation";
$results = sqlsrv_query($conn, $describeQuery);
while($row = sqlsrv_fetch_array($results, SQLSRV_FETCH_ASSOC))
{
echo '<p>'.$row['Username'].' '.$row['Firstname'].' '.$row['Lastname'].'
'.$row['Location'].'</p>';
}
sqlsrv_close($conn)
?>
答え :
So l ution:
この$NewLocation = "'". $_POST['Location']."'";
nameのため、lはl owercase "
これは大文字と小文字が区別されます。 l
"(L)になります。 ='l ocation'
次に、それをsimp l y $ New L ocation = $ _POST ['l ocation'];
に変更してから引用しますクエリのWHERE
clauseでの値lue。
つまり:
WHERE L ocation ='$ New L ocation' ";
文字列の場合、ほとんどのl ikelyです。
補足:lの方法でllステートメントを終了するのが最適です。
sq l srv_c l ose($ conn);
とalなので、アクションを引用します
action = "drop l ocationget.php"
PHPのエラー報告はlpでした。
補足:
va l ueを(およびHTM Lソースに)表示する場合は、'"。$value。"'を使用できます。
例としてle。
echo "&l t; option va l ue='"。$value。"'>"。{-code-11 } ['location']。"&l t; / option>";
va l ueは何でもかまいませんが、 $row
または別のco{-に使用されるのと同じvalueでもかまいません。 code-2}umnのvalue。
そのvalueを二重引用符で設定(表示)する場合は、単純にl二重引用符をエスケープしますl e引用符:
echo "&l t; option va l ue = \" $ va lue">"。$row[ 'location']。"&l t; / option>";
一部の人は、二重のleがvaluesを引用することを好みます。
co lumnの名前と値は(a l so)大文字と小文字が区別されることに注意してください。
コメントに示されているように、人口の多いl行はl大文字の L
である必要があります。
echo "&l t; option va l ue='"。$row['Location']。"' >"。$row['Location']。"&l t; / option> ";
クエリのcolumn名はLocation
です。
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。