0

私は自分のデータベースから自動車メーカーを取得するために簡単なクエリを実行しています:

$result = mysql_query("SELECT DISTINCT model_make_display_name FROM car_query_models_full ORDER By model_make_display_name ASC") or die(mysql_error());

while ($row = mysql_fetch_array($result)) {
echo "<p>".$row['model_make_display_name']."</p>\n";
}  

データはHTMLビューでは通常どおり表示されますが、ソースを表示すると、結果の一部が次のように表示されます。

<p>Ariel
</p>
<p>Armstrong </p>
<p>Ascari
</p>
<p>Aston Mart</p>
<p>Audi
</p>
<p>Austin
</p>
<p>Austin Hea</p>
<p>Autobianch</p>
<p>Auverland
</p>
<p>Avanti
</p>
<p>Beijing
</p>
<p>Bentley
</p>

一部の名前が、終了pタグを次の行に移動するように強制するテキストの後にブレークを追加していることに注意してください。これは、何が原因である可能性がありますか?

乾杯

4

2 に答える 2

1

それがデータベースに保存されている方法がこれを引き起こしています。

あなたが試すことができます:

echo "<p>" . htmlspecialchars( $row['model_make_display_name'] ) . "</p>\n";

\nまたは、\r値から置き換えます。

SELECT ... REPLACE(model_make_display_name, '\n', '')

mysql_*新しいコードで関数を使用しないでください。それらはもはや維持されておらず、公式に非推奨になっています。赤いボックスがか?代わりにプリペアドステートメントについて学び、 PDOまたはMySQLiを使用してください。この記事はどちらを決定するのに役立ちます。PDOを選択した場合は、ここに優れたチュートリアルがあります。

于 2013-01-11T01:05:32.983 に答える
1

それらのメーカーの端にある改行文字を確認しましたか?試す

echo "<p>".trim($row['model_make_display_name'])."</p>\n";

それらが存在するかどうかを確認します。その場合は、データベースを(エントリ時または1回限り)クレンジングするだけで、準備が整います。

于 2013-01-11T01:07:58.730 に答える