1

私はPHPとMySQLが初めてです。フォームに入力された入力テキストに基づいてデータベースからの結果を表示するために使用する簡単な検索フォームを作成しようとしています。私のコードは次のようなものです:

Form.php

<!DOCTYPE html>
<html lang="en">
<html>
<head>
<title>test</title>
</head>
<body>
<form action="search.php" method="GET" id="form">
Name: <input type="text" name="name" >
Age:<input type="text" name="age">
Search<input type="submit" name="submit" id="Search" Value="Search">

</form>

</body>
</html>

Connect.php

  <?php
  $connect = mysql_connect('localhost','$user','$password'); 

  if(!$connect){
die('Could not connect'.mysql_error() );  
  }

  $db_selected = mysql_select_db('test');  

  if(!$db_selected){
die('wrong'.mysql_error() );
  }

  ?>

Search.php

 <?php
  include("includes/connect.php");

  $name=$_GET['name'];


  echo $name;

  $query = "SELECT * FROM `cats` WHERE name='\$name'";
  $results= mysql_query($query);


  if (!empty($results)){
echo "query successful" ;
exit;
   }
  $row=mysql_fetch_assoc($results);
  echo "Age:".$row['age'];
  echo "Name:".$row['name'];
 ?>

echo $names結果を正しく出力し、そうしecho "query successful"ます。しかし

echo "Age:".$row['age']; 
echo "Name:".$row['name'];

文字列部分のみをエコーし​​、クエリは結果を取得していないようです。

mysql_fetch_assoc をに変更してみましmysql_fetch_arrayたが、何もしません。ここで私が間違っていることを誰かに教えてもらえますか。私の DB テーブルには 2 つの列と 2 つの行があります。

4

3 に答える 3

3

$を実行して、変数内をエスケープしてい\$ます。試す:

$query = "SELECT * FROM `cats` WHERE name='$name'";

編集

以下の議論から。

の問題undefined indexは、実際$row['age']にはデータベースの列名がAge. $row['Age']したがって、アイテムを参照するときに使用する必要があります。についても同様ですname

于 2013-02-26T19:40:10.973 に答える
0

これはうまくいくはずです:

$query = "SELECT * FROM catsWHERE name = '$name'";

また、「exit;」を呼び出すと、次のブロックでは、残りのスクリプトの実行をキャンセルします。

    if (!empty($results)){
     echo "query successful" ;
     exit;
    }
于 2013-02-26T19:44:33.277 に答える
0
$query = "SELECT * FROM `cats` WHERE name='" . $name . "'";

または連結なし

$query = "SELECT * FROM `cats` WHERE name='$name'";
于 2013-02-26T19:38:56.097 に答える