2017-09-22 11 views
0

フォーム入力から送信されたcharに応じて、mysqlデータベースからレコードを表示しようとしています。しかし、私はこれを動作させることはできません。 マイHTLMコードは、私のPHPコードphpデータベースからchar検索でデータを表示

<?php 
$headcode = $_POST['headcode']; 
echo $headcode; 

$host="localhost"; // Host name 
$username="root"; // Mysql username 
$password="789852"; // Mysql password 
$db_name="work"; // Database name 
$tbl_name = "headcodes"; 

// Connect to server and select database. 
$link = mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB"); 


//Retrieve all data from the table 
$sql = "SELECT * FROM $tbl_name WHERE LIKE '%$headcode%'"; 
$result1 = mysql_query($sql, $link); 
// if successfully, displays message "Successful". 
if($result1){ 
    $connect = "connected"; 
    echo "Successful"; 
    echo "<BR>"; 
} 
else { 
    echo "ERROR"; 
} 

while ($row = mysql_fetch_assoc($result1)){ 
    $number = $row['number']; 
} 
echo $number; 
?> 

私はエラーを得続ける

<form action='headcode_Db_connect.php' method='POST'> 
<input type="text" name="headcode" value="" maxlength="2"> 
</form> 

を下回っています。送信されるデータは1Aまたは2Aで、このレコードのデータベースからの番号が表示されます。 WHERE LIKE '%$headcode%'";WHERE headcode = '1A'";に変更すると、結果は17になりますが、これは正しいです。だから、私はこの結果を与えるためにPOST変数を使うことができます。

+0

あなたは言う:「私はエラーが発生しています。」あなたが得る正確なエラーについて言及すれば助けになるでしょう。とにかく 'あなたの'%$ headcode% '"には何か、つまり' headcode = 'がありませんので、' WHERE headcode =' $ headcode '"'にする必要があります。私はSQLインジェクションに対する義務的な警告を省きます。 –

+0

ありがとう、私は 'headcode ='に変更しましたが、現在は成功を返していますが、行内の数字はまだ与えられていません。 – user2669997

+0

明白な質問です:あなたのテーブルには「番号」という名前の列がありますか?これをあなたのフェッチループに置くことをチェックするには 'print_r($ row); echo '
';'。実稼働環境にこれらのmysql関数を使用しないことを知っていますか?それらは推奨されなくなりました。 –

答えて

0
WHERE LIKE '%$headcode%'" 

あなたは(たとえば)atで検索した場合、次のようにすべての試合になります。あなたが最初%を紛失した場合

at, bat, cat, rat 

しかし、それは検索語の文字でを起動する必要があります

WHERE LIKE '$headcode%'" 

atで始まるすべての単語を返します。お役に立てれば!

0

私は以下のコードで作業しました。

<?php 
$headcode = $_POST['headcode']; 

$host="localhost"; // Host name 
$username="root"; // Mysql username 
$password="789852"; // Mysql password 
$db_name="work"; // Database name 
$tbl_name = "headcodes"; 

// Connect to server and select database. 
$link = mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB"); 


//Retrieve all data from the table 
$sql = "SELECT * FROM $tbl_name WHERE headcode = '$headcode'"; 
$result1 = mysql_query($sql, $link); 

if($result1){ 
    echo "Successful"; 
    echo "<BR>"; 
} 
else { 
    echo "ERROR"; 
} 
while ($row = mysql_fetch_assoc($result1)){ 
    $number = $row['number']; 
} 
echo $number; 
?> 
関連する問題