0

「sixcols」というデータベースを正常に検索し、正しい数の結果を表示するsearch.phpページがあります。しかし、突然、各結果の最初の列からの情報のみが表示されます。コードで最初にリストする6種類の列のどれに関係なく、その列のみが表示されます。6つすべてが表示されない理由がわかりません。

mysql_fetch_arrayが廃止されつつあることは知っていますが、今朝はこれが機能したことを誓います。何を変更したのかわかりません。

タイプミスや説明を2時間検索しましたが、わかりません。どんな助けでも大歓迎です!

コードは次のとおりです。

<?php

error_reporting(E_ALL);
ini_set('display_errors', '1');

$search_output = "";
if(isset($_POST['searchquery']) && $_POST['searchquery'] != ""){
$searchquery = preg_replace('#[^a-z 0-9?!]#i', '', $_POST['searchquery']);
$sqlCommand = "SELECT Subcategory, Type, Author, Summary, Date, Source FROM sixcols WHERE Author LIKE '%$searchquery%' OR Summary LIKE '%$searchquery%'";

        include_once("connect.php");

$query = mysql_query($sqlCommand) or die(mysql_error());

$count = mysql_num_rows($query);
if($count > 1){
$search_output .= "<hr />$count results for <strong>$searchquery</strong><hr />";
while($row = mysql_fetch_array($query)){

            $Subcategory = $row["Subcategory"];
            $Type = $row["Type"];
            $Author = $row["Author"];
            $Summary = $row["Summary"];
            $Date = $row["Date"];
            $Source = $row["Source"];
   $search_output .= '<br/> <span class="subcategory">' . $Subcategory . '</span>'; '<span class="type">' . $Type . '</span>'; '<span class="author">' . $Author . '</span>'; '<span class="summary">' . $Summary . '</span>'; '<br/> <span class="date">' . $Date . '</span>'; '<span class="source">' . $Source . '</span>';
                } // close while
} else {
$search_output = "<hr />0 results for <strong>$searchquery</strong><hr />$sqlCommand";
}
}
?>
4

3 に答える 3

1

への追加を停止する構文上の問題があります$search_output。これらのエラーをキャッチするには、エラーレポートをオンにする必要があります。

$search_output .= '<br/> <span class="subcategory">' . $Subcategory . '</span>'; 
$search_output .= '<span class="type">' . $Type . '</span>';
$search_output .= '<span class="author">' . $Author . '</span>';
$search_output .= '<span class="summary">' . $Summary . '</span>';
$search_output .= '<br/> <span class="date">' . $Date . '</span>';
$search_output .= '<span class="source">' . $Source . '</span>';

また、関数の使用を停止する必要がありmysql_ます。それらはもはや維持されておらず、公式に非推奨になっています。赤いボックスが表示されますか?代わりにプリペアドステートメントについて学び、 PDOまたはMySQLiを使用してください-この記事はどちらを決定するのに役立ちます。

于 2013-01-18T19:04:25.007 に答える
0

このため、1つの列が表示されます。

$search_output .= '<br/> <span class="subcategory">' . $Subcategory . '</span>';

セミコロンの後は$search_output文字列に追加されません。

于 2013-01-18T19:06:50.740 に答える
0
$search_output .= '<br/> <span class="subcategory">' . $Subcategory . '</span> <span class="type">' . $Type . '</span> <span class="author">' . $Author . '</span> <span class="summary">' . $Summary . '</span> <br/> <span class="date">' . $Date . '</span>  <span class="source">' . $Source . '</span>';
于 2013-01-18T19:07:44.927 に答える