私はまだPHPの初心者なので、これが簡単なものであれば申し訳ありません。
PHP と mySQL を使用して、Web サイトのかなり基本的な検索機能を作成しています。データベースに接続し、データベースを選択し、テーブルをクエリして、テーブルの列をフェッチしました。
$k = htmlspecialchars($_GET['k']); // Get search query
$select = mssql_query("SELECT * FROM search WHERE Title Like '%" . $k . "%'");
if( mssql_num_rows($select) < 1) {
$noResults = 'No results found for <b>' . $k . '</b>, <label for="k">Please try again.</label>';
} else {
while ($results = mssql_fetch_array($select)) {
$title = $results['Title'];
$link = $results['Link'];
$description = $results['Description'];
}
}
$results[''] 列を変数に入れてから、各変数を次のようにエコーアウトしようとすると;
if( isset($noResults)) {
echo $noResults;
} else {
echo '<li>' . '<h2>' . '<a href="' . $link . '" title="' . $title . '">' . $title . '</a>' . '</h2>' . '<p>' . $link . '</p>' . '<p>' . $description . '</p>' . '</li>';
}
ただし、そのクエリに一致する1行のみがエコーされますが、そのように列を単純にエコーアウトする場合は、
echo $results['Title'];
echo $results['Link'];
echo $results['Description'];
クエリに一致するすべての行が表示されます。
なぜこれが起こっているのかわかりません。誰かが私を助けることができれば、それは素晴らしいことです!