0

私は検索ページに取り組んでおり、結果情報のビットの 1 つは場所です。検索するものの 1 つは音楽アルバムです (位置情報はありません)。

http://www.flcbranson.org/freedownloads-search.php

「ロック」を検索すると、The Peace Of God - Pt. 3 - 位置情報を含むマイ ロック (本来あるべき姿ではありません)。「my rock」を検索すると、同じレコードの位置情報がリストされていないことがわかります (当然のことですが)。別の結果に位置情報がある場合、if ステートメントがオーバーライドされているようなものです。

Music01、Music02 などの音楽アルバムが$row["Number"]あり、他のすべてのレコードは null または数値 (すべて Musicxx よりも小さい必要があります) である必要があります。私が知る限り、このコードは、それが音楽アルバム。

<?php
foreach ($stmt as $row) {
    if ($row["Number"] < "Music01") {
        if ($row["Location"]) $location = $row["Location"];
        else $location = "Faith Life Church";
        if ($row["City"]) $city = $row["City"];
        else if ($row["Sarasota"]) $city = "Sarasota";
        else $city = "Branson";
        if ($row["State"]) $state = $row["State"];
        else if ($row["Sarasota"]) $state = "FL";
        else $state = "MO";
    }
    if ($location) {
?>
<li><?php echo $location; ?></li>
<?php
    }
}
?>

ここで何か不足していますか?

JJ

4

3 に答える 3

2

この方法で文字列を比較すると、本質的には、文字列が に等しくないことを意味しますMusic01。複雑になる可能性があります。http://php.net/manual/en/language.operators.comparison.phpを参照してください。

真の整数を取得してから、より予測可能な結果を​​得るために比較を行います。

于 2012-05-02T15:40:58.730 に答える
0

問題は、文字列を 未満の文字列と比較していることです。<これは文字通りtrue毎回返されます。配列キーの 'Music` という単語を確認する必要があるだけですよね?

if (strpos($row["Number"], 'Music') !== false) {

}
于 2012-05-02T15:42:25.330 に答える