1

mySQLクエリを作成するphpファイルをクリックすると、その画像に関連付けられた特定の値を画像に送信させたいと思います。

たとえば、特定の動物の画像、たとえば猫の画像をクリックすると、それが変数に割り当てられる値として送信され、MySQLクエリに入力される動物の写真のHTMLページがあるとします。猫、犬、馬などを含む動物データベースからさまざまな種類の猫を引き出します。

したがって、HTMLページのanimals.htmlで、次のコードを使用して画像を作成しています。

//animals.html
<form action="animalQuery.php" method="get"> <input type="image" src="Cat.jpg" name="cats" width="350" height="225">
<form action="animalQuery.php" method="get"> <input type="image" src="Dog.jpg" name="dogs" width="350" height="225">

Cat.jpg画像をクリックすると、$ animal変数に割り当てられる値「cats」を送信して、基本的に以下の$stmtが「select* from Animals wherebreeds='cats';」と等しくなるようにします。動作するクエリ。

//animalQuery.php
$animal=$_GET["cats"]; 
$stmt="select * from Animals where breeds =  $animal;";

変数$animalの代わりに「cats」または「dogs」の値を使用して$stmtをハードコーディングすると機能するため、クエリが機能することがわかります。クリックしたときに画像をその変数$animalに送信する方法を理解するのに苦労しています。これがわかれば、1つの変数がすべての画像で機能するように、多数の画像の1つをクリックしたときに、単一の変数$animalを特定の値に設定する方法を理解できるはずです。

4

4 に答える 4

2

なぜこんなにシンプルなものの本格的な形なのか?

<a href="animalQuery.php?animal=cat"><img src="..." /></a>
<a href="animalQuery.php?animal=dog"><img src="..." /></a>
于 2012-12-04T20:19:57.233 に答える
0

問題に取り組む別の方法は、入力をリンクに置き換えることです。例えば:

<a href="animalQuery.php?animal=cats"><img src="Cat.jpg" width="350" height="225" /></a>
<a href="animalQuery.php?animal=dogs"><img src="Dog.jpg" width="350" height="225" /></a>

次に、animalQuery.phpを更新して次のように機能させることができます。

$animal=$_GET['animal'];

このページでこの例を見ることができます:

https://stackoverflow.com/tags

各タグはリンクであり、入力フィールドではないことがわかります。

<a href="/questions/tagged/c%23" class="post-tag" title="show questions tagged 'c#'" rel="tag">c#</a>
...
<a href="/questions/tagged/java" class="post-tag" title="show questions tagged 'java'" rel="tag">java</a>
...
<a href="/questions/tagged/php" class="post-tag" title="show questions tagged 'php'" rel="tag">php</a>

最後に、SQLを作成するためにMySQLiまたはPDOライブラリを調べる必要があります。誰かがこのページにアクセスした場合:animalQuery.php?animal=cats UNION SELECT * FROM information_schema.tables、彼らはあなたのサイトをハッキングする可能性があります。

于 2012-12-04T20:20:17.050 に答える
0

しばらく前にこれと同様の問題が発生しました。これは、一部のブラウザが、指定した実際の値ではなく、値として画像の座標を送信するために発生しました。その特定の問題を解決する最も簡単な方法(画像入力を使用する必要がある場合)は、非表示の値を含めることです。

<form action="animalQuery.php" method="GET">
    <input type="hidden" name="animal" value="cat" />
    <input type="image" src="Cat.jpg" />
</form>

次に、ファイル内の値を取得しanimalQuery.phpます。

<?php
$animal = $_GET['animal'];
$stmt = "select * from Animals where breeds = '$animal';";
?>
于 2012-12-04T20:25:44.593 に答える
0

フォームで、ボタンに同じ名前を付け、PHP で値を取得します。次のようにできます。

<form action="animalQuery.php" method="get"> 
 <input type="image" src="Cat.jpg" name="animal" value="Cat" width="350" height="225">
 <input type="image" src="Dog.jpg" name="animal" value="Dog" width="350" height="225">
</form>


<?php 
//Set the possible values
$animals = array( "Cat", "Dog");
//Check if the form is submitted and set the value if the value exists
$animal = isset( $_GET['animal']) && 
          in_array( $_GET['animal'], $animals)? $_GET['animal'] : "Not chosen";
于 2012-12-04T20:14:12.230 に答える