1

私はこのコードのチャンクを持っています。それは機能しますが、それを行うためのより単純でより論理的な方法があると確信しています。そして、質問を保存するためだけに、以前のコードのために特定のもの$seriespartではありません。$row["SeriesPart"]

// normal titling convention is Number - Series - Series Part - Sermon
if ($row["Number"] && $row["Series"] && $row["SeriesPart"] && $row["Sermon"]) $title = $row["Number"]." - ".$row["Series"]." - Pt. ".$seriespart." - ".$row["Sermon"];
    // but sometimes a series doesn't have sermon titles
    else if ($row["Number"] && $row["Series"] && $row["SeriesPart"]) $title = $row["Number"]." - ".$row["Series"]." - Pt. ".$seriespart;
        // series that are in process don't have product numbers
        else if ($row["Series"] && $row["SeriesPart"] && $row["Sermon"]) $title = $row["Series"]." - Pt. ".$seriespart." - ".$row["Sermon"];
            // but sometimes a series doesn't have sermon titles
            else if ($row["Series"] && $row["SeriesPart"]) $title = $row["Series"]." - Pt. ".$seriespart;
                // and we don't want product singles just showing a sermon title (it should say S74 - Title as a distinction from other oddball sermons)
                // note the substr() as we want it to say S71 and not S0171
                else if ($row["Number"] >= "0100" && $row["Number"] <= "0199") $title = "S".substr($row["Number"], 2)." - ".$row["Sermon"];
                    // just show the bloody sermon title already
                    else $title = $row["Sermon"];

たくさんの説教があります。それらの説教は、通常、シリーズの一部です。シリーズが終了すると、シリーズ番号、シリーズタイトル、シリーズパート、およびオプションで説教タイトル、説教パート、サブタイトル、およびサブタイトルパートが含まれます。シリーズが終了していない場合、シリーズ番号はありません。時々、説教のタイトルがありません。シリーズの一部でない場合は、それ自体が実際の製品である可能性があります。他の時には、それは何の一部でもない単なる奇妙な説教です。

例...

癒された(説教のみ、シリーズの一部ではない、奇妙なボール)

S45-吸盤または種まき?(製品であるシングル)

ヘルパー-Pt。1-助けが必要ですか?(シリーズ進行中、シリーズ番号なし)

0513-あなたの心を固めない-Pt。2(完成したシリーズ、説教のタイトルなし)

1101-神の名誉-Pt。11-神が私たちをどのように敬うか-Pt。5-私たちを使用して-Pt。3(完成シリーズ、説教タイトル-説教パート-字幕-字幕パート)

コードをクリーンアップして、if、else if、elseで同じ情報を繰り返し続ける必要がないようにする方法についてのアイデアはありますか?

4

2 に答える 2

1

私はこれがあなたが望むことをするだろうと思います:

$parts = array();
if ($row["Number"] && ($row["Number"] < "Music01" || $row["Number"] > "Music99"))
{
    if ($row["Number"] >= "0100" && $row["Number"] <= "0199") $parts[] = "S". substr($row["Number"], 2);
    else $parts[] = $row["Number"];
}

if ($row["Series"]) $parts[] = $row["Series"];
if ($row["SeriesPart"]) $parts[] = "Pt. $seriespart";
if ($row["Sermon"]) $parts[] = $row["Sermon"];

$title = implode(" - ", $parts);
于 2012-05-01T15:44:24.640 に答える
0
$title = '';
if ($row["Series"] && $row["SeriesPart"]) {
    if ($row["Number"]) {
        $title .= $row["Number"]." - ";
    // series that are in process don't have product numbers
    }
    $title .= $row["Series"]." - Pt. ".$seriespart;
    if ($row["Sermon"]) {
        $title .= " - ".$row["Sermon"];
    }
// and we don't want product singles just showing a sermon title (it should say S74 - Title as a distinction from other oddball sermons)
// note the substr() as we want it to say S71 and not S0171
} elseif ($row["Number"] >= "0100" && $row["Number"] <= "0199") {
    $title = "S".substr($row["Number"], 2)." - ".$row["Sermon"];
}
// just show the bloody sermon title already
else {
    $title = $row["Sermon"];
}

そして、部分的な作成を望まない場合

if ($row["Series"] && $row["SeriesPart"]) {
    if ($row["Number"]) {
        if ($row["Sermon"]) {
            $title = $row["Number"]." - ".$row["Series"]." - Pt. ".$seriespart." - ".$row["Sermon"];
            // but sometimes a series doesn't have sermon titles
        } else {
            $title = $row["Number"]." - ".$row["Series"]." - Pt. ".$seriespart;
        }
    // series that are in process don't have product numbers
    } else {
        if ($row["Sermon"]) {
            $title = $row["Series"]." - Pt. ".$seriespart." - ".$row["Sermon"];
        // but sometimes a series doesn't have sermon titles
        } else {
            $title = $row["Series"]." - Pt. ".$seriespart;
        }
    }
// and we don't want product singles just showing a sermon title (it should say S74 - Title as a distinction from other oddball sermons)
// note the substr() as we want it to say S71 and not S0171
} elseif ($row["Number"] >= "0100" && $row["Number"] <= "0199") {
    $title = "S".substr($row["Number"], 2)." - ".$row["Sermon"];
}
// just show the bloody sermon title already
else {
    $title = $row["Sermon"];
}
于 2012-05-01T15:41:11.630 に答える