2017-03-22 22 views
1

に応じて異なる結果を与える私はこのフォームページ一致するユーザのMySQLデータベースと入力し、ユーザ入力

<!DOCTYPE html> 
<html> 
    <head> 
     <title>Navigation</title> 
    </head> 

<body> 

<form name="form" method="POST" action="capstone.php"> 
    <fieldset> 
     <p>Where are you trying to go? </p> 
     <input type="roominput" name="mapinput" id="mapinput"> 
<br /> 
<br /> 
<input type="submit" name="submit" value="Submit"> 
</fieldset> 
</form> 
</body> 
</html> 

を持っている私は場合は、SQLデータベースとエコーとのフォームページからのユーザ入力と一致する、このPHPコードを有します部屋があるかどうか。

このコードを変更すると、フォームからのユーザー入力に応じてフォームページのユーザー入力をデータベースに照合し、異なるイメージを投稿することができます。

<?php 
$conn=mysqli_connect("localhost","xxx","xxx","xxx"); 
if (mysqli_connect_errno()) 
{ 
echo "Connect failed: " . mysqli_connect_error(); 
exit(); 
} 

if (isset($_POST['mapinput'])) 
{ 
$map = $_POST['mapinput']; 
$query = "SELECT * FROM `Rooms` WHERE `Room Number` ='$map'"; 
$result = mysqli_query($conn,$query); 

    if (mysqli_num_rows($result)) 
     { 
      echo 'Room already exists'; 
     } 

else 
{ 
echo 'Room does not exist, please try again.'; 
} 

} 

mysqli_close($conn); 

?> 
+1

'エコー '''? –

+0

'(mysqli_num_rows($ result)> 0)'これを最初に変更して、行を返すかどうかを調べる – Mario

+0

検索フォームからのユーザの入力に応じて表示する必要がある複数の画像がある –

答えて

2

type="roominput"有効な入力タイプではありません。

整数を使用する予定の場合は、"text"または"number"のいずれかである必要があります。後者はHTML5タイプです。

参考:

注:

は、プリペアドステートメントを使用している場合入力i sを整数にするには、$map = (int)$_POST['mapinput'];を使用するのが良いです。

ただし、最初に整数かどうかを確認する必要があります。

「どのように私はこのコードを変更します:これをチェックすると、少数を示すために多くの方法があります。フォームページからのユーザー入力をデータベースに照合し、異なる画像を投稿するためにdepフォームからのユーザー入力で終わる? "

あなたはどちらかwhileまたはforeachループで成功したクエリに対する結果をフェッチ。

内である必要があり、あなたが表示したい画像をエコー。イメージのソースは、データベース内のフォルダまたはBLOBからのものであるかどうかによって異なります。その部分は不明であり、全く異なる2つの方法です。

サーバ上に保存されたファイルからの場合:

<img src="/path/to/images/image_x.jpg"> 

またはwhileループから$image = $row['image_in_column'];を使用して:BLOBとして

<img src="/path/to/images/$image"> 

より多くの例:

0

ここで私は、データベーステーブルの列の名前を知らないので、私は、Uにこのように、この答えを与えることができます。

のMysqli:capstone.php

<?php 

$conn = mysqli_connect("localhost","xxx","xxx","xxx"); 

if (isset($_POST['submit'])) 
{ 
    if (isset($_POST['mapinput'])) 
    { 
     $map = mysqli_real_escape_string($conn, $_POST['mapinput']); 

     $query = "SELECT * FROM Rooms WHERE Room Number = '$map'"; 
     $result = mysqli_query($conn,$query); 

     // check if query returns any result 
     if (mysqli_num_rows($result) > 0) 
     { 
      $data = mysqli_fetch_array($result); 

      // loop through yours result displaying data u want 
      // and lets say u have image path stored in database 
      foreach ($data as $dat) 
      { 
       echo $dat['column_name'] . ' <img src="'.$dat['image_url'].'"><br />'; 
      } 
     } 
     else 
     { 
      echo 'No results found.'; 
     } 
    } 
    else 
    { 
     echo 'Please enter room name.'; 
    } 
} 

mysqli_close($conn); 

?> 

フォーム:

<form method="POST" action="capstone.php"> 
<fieldset> 
    <p>Where are you trying to go? </p> 
    <input type="text" name="mapinput" id="mapinput"> 
    <input type="submit" name="submit" value="Submit"> 
</fieldset> 
</form> 
+0

イメージはデータベースに保存されません。それらは/ var/www/htmlフォルダにあります。彼らはデータベースにいるはずですか?また、ユーザーが "書店"をフォームに入力してデータベースと照合すると、自分の個人的なイメージをどのように持ち出すのでしょうか?例:書店には独自のイメージがあり、フードコートには独自のイメージがありますが、ユーザーがその部屋を入力してデータベースと照合したときにのみ表示する必要があります。 –

+0

これは、(image_folder/user_image.jpg)のように画像パスをデータベースに保存するために画像をアップロードするときに使用してください。後でこのコードで例を挙げましょう。これは最善の解決策である ' 'になります。すでに画像をアップロードしている場合は、その画像がどのユーザーかわからないことがあります。 – Mario

+0

書店用のイメージで、そのイメージが1つしかない場合、 'foreach'ループでそれを使うことができます。if文を追加します。if($ dat ['column_name'] == 'bookstore')echo ''' – Mario

関連する問題