2011-07-31 13 views
0

私は単純な従業員アプリケーションをテストしていましたが、これを持っていました'where句'で不明な列 'mush'エラーです。名前の列には「麦わら」と呼ばれる人物がいます。'where句'で不明な列 'mush'

はここ

<?php 
// Connects to your Database 
mysql_connect("localhost", "myuser", "mypass") or die(mysql_error()) ; 
mysql_select_db("peoplesdb") or die(mysql_error()) ; 

//Retrieves data from MySQL 
$data = mysql_query("SELECT * FROM employees WHERE name = $_GET[name]") or die(mysql_error()); 
echo "<table border=\"1\">"; 
echo "<tr>"; 
echo "<th>First Name:</th>"; 
echo " <td>Last Name</td>"; 
echo "</tr>"; 
echo "<tr>"; 
echo "<th rowspan=\"3\"><img src=\"../about/images/".$data['photo']."\" width=\"205\" height=\"205\" alt=\"\" title=\"\"></th>"; 

echo $data['name']; 
echo "<td>".$data['name'] ."</td>"; 
echo "</tr>"; 
echo "<tr>"; 
echo "<td>".$data['lastname'] ."</td>"; 
echo "</tr>"; 
echo "</table>"; 
?> 

目的は、テーブルの左にある絵で、テーブル上の詳細を表示するようにした私のコードです。 は、ここで私は、アプリケーションを呼び出す試みた方法は次のとおりです。

名前、写真、電話、姓と生年月日:

http://localhost:8080/displaymembers.php?name=mush. 

私はこれらの列を含むテーブルを持っています。

詳細が表示されなくなることが間違っていますか?私はあなたの助けが必要です。

ヘレン。

+0

をあなたはnameとして

$data = mysql_query("SELECT * FROM 'employees' WHERE 'name' = '".mysql_real_escape_string($_GET['name'])."'") or die(mysql_error()); 

は、MySQLの目的のために予約されて試してみてください、と私はそれがあると信じています。 –

答えて

2

まず、あなたは、第二あなたがそれらをエスケープする必要があり、あなたの入力を引用する必要があります。

mysql_query("SELECT * FROM employees WHERE name = '". 
    mysql_real_escape_string($_GET['name']) ."'"); 
+0

チップをありがとう。エラーメッセージは現在停止していますが、テーブルに何も表示されていないようです。エラーメッセージは表示されません。それを表示するのを止める何かがありますか?私はecho $ data ['name']を使ってみました。しかし、出力はありません:( –

+0

'$ data_array = mysql_fetch_assoc($ data);' '' $ data_array'に最初の行があります。ループ。 – Jonathon

+0

ありがとう@ジョニーキーグ、それはそれをした。あなたの人は単に素晴らしいです。 –

2

引用符で囲む必要があります。私はまた、あなたがmysql_real_escape_stringを使用することをお勧め

SELECT * FROM employees WHERE name = '{$_GET[name]}' 

$data = mysql_query("SELECT * FROM employees WHERE name = '" . mysql_real_escape_string($_GET['name']) . "';") or die(mysql_error()); 
+0

上記は動作しますが、未定義の定数名を使用すると仮定します。つまり、mysql_real_escape_string($ _ GET ['name']) 'を使用します。 –

+0

コピーして貼り付けただけでは、引用符がないことに気付かなかった。 – Jonathon

1

がそれらに置く単一引用符をお試しくださいあなたの変数の周り。

$_GET['name'];

そしてSQLインジェクションを防ぐためにmysql_real_escape_stringを使用しています。

1

あなたはそり犬のデータベースで作業する必要があります...

関連する問題