フォーム入力から送信された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変数を使うことができます。
あなたは言う:「私はエラーが発生しています。」あなたが得る正確なエラーについて言及すれば助けになるでしょう。とにかく 'あなたの'%$ headcode% '"には何か、つまり' headcode = 'がありませんので、' WHERE headcode =' $ headcode '"'にする必要があります。私はSQLインジェクションに対する義務的な警告を省きます。 –
ありがとう、私は 'headcode ='に変更しましたが、現在は成功を返していますが、行内の数字はまだ与えられていません。 – user2669997
明白な質問です:あなたのテーブルには「番号」という名前の列がありますか?これをあなたのフェッチループに置くことをチェックするには 'print_r($ row); echo '
';'。実稼働環境にこれらのmysql関数を使用しないことを知っていますか?それらは推奨されなくなりました。 –