0

データベースからカバーされているエリアのリストをエコーし​​ています。リストには、データベースから取得した見出しとサブ見出しがあります。

$area_shire = '';
$area_district = '';
$area_name = '';

while($rows = mysql_fetch_array($query)):

    if($rows['area_shire'] != $area_shire) {

        echo '<h1>'.$rows['area_shire'].'</h1>';
        $area_shire = $rows['area_shire'];
    }

    /* same for district using h2 and name using h3 */

endwhile;

各結果をハイパーテキスト URL にしたいので、追加しました

$area_shire_url = str_replace(' ', '_', $area_shire);
$area_district_url = str_replace(' ', '_', $area_district);
$area_name_url = str_replace(' ', '_', $area_name);

各エコーを次のように変更しました

 echo '<a href=\"Tree_Surgery_'.$area_shire_url.'.php\"><h2>'.$rows['area_shire'].'<br></h2>';
$area_shire = $rows['area_shire'];}

  /* same for district using h2 and name using h3 */

これはまったく機能していませんか?

4

3 に答える 3

1

切り取ったものを次のように書き直します。

$area_shire = '';
$area_district = '';
$area_name = '';

while($rows = mysql_fetch_assoc($query)) {
    if ($rows['area_shire'] != $area_shire) {
        $area_shire = $rows['area_shire'];
        $area_shire_url = 'Tree_Surgery_'.str_replace(' ', '_', $area_shire).'.php';
        echo '<h2><a href="'.$area_shire_url.'">'.$area_shire.'</a></h2><br>';
    }

    // same for district using h2 and name using h3
}

あなたのエラーは"、一重引用符で囲まれた文字列で while をエスケープしたことのようです。を使用する'と、php は含まれるすべての文字をそのままエコーします。エスケープは必要ありません。

また、 mysql_fetch_arrayの代わりにmysql_fetch_assocを使用し、HTML タグの順序を並べ替えて、インライン要素内のブロックレベル要素のネストを回避したことに注意してください。

また、URL の一部だけを変数に格納して、echo ステートメントで完全な URL に結合するのではなく、完全な URL を変数に格納することも選択します。私の意見では、これは読みやすいです。特に後で編集したい場合。

于 2012-12-06T17:18:29.943 に答える
1

'<a href=\"Tr

PHPステートメントの定義に"使用していないため、をエスケープする必要はないと思います。"

于 2012-12-06T17:04:34.523 に答える
0

テキストは二重引用符で囲まれていないため、二重引用符をエスケープする必要はありません。また、コードの最後に a があるようですが、}これがすべてのコードでない限り、これは必要ありません。

この形式またはwhileループが表示されません。次のように変更してみてください。

while($rows = mysql_fetch_array($query)){
    // do stuff
}

さらに重要なことは、aタグを終了していないことです。行を終了する</a>

于 2012-12-06T17:15:02.710 に答える