繰り返しのコードをまとめて簡略化したい
以下のようなPHPを作成しました。
が、同じようなコードが繰り返し使われていて、
なんとか簡略化できないかなと考えています。
例えば、↓が10回出てくる。
LEFT(番号,LEN(番号)-2) + '-' + RIGHT (RTRIM(番号), 2) AS 番号2
なにかやり方あるのでしょうか。
見当違いのとこを言っていたらすいません。
******************************************************
作成したPHP
環境:PHP5.2 Apache2.2 SQLserver5
******************************************************
<a href="clip.php?x=a">あ</a><br>
<a href="clip.php?x=ka">か</a><br>
<a href="clip.php?x=sa">さ</a><br>
…
<a href="clip.php?x=wa">わ</a><br>
<?PHP
$cont = mssql_connect("サーバ名","ユーザ名","パスワード");
mssql_select_db('[DB名]', $cont);
if ($_GET['x']=='a') { // あ行
$sql = "select 氏名, 住所, LEFT(番号,LEN(番号)-2) + '-' + RIGHT (RTRIM(番号), 2) AS 番号2 from テーブル名 WHERE (氏名 LIKE N'あ%' OR 氏名 LIKE N'い%' OR 氏名 LIKE N'う%' OR 氏名 LIKE N'え%' OR 氏名 LIKE N'お%') ORDER BY 氏名";
}
if ($_GET['x']=='ka') { // か行
$sql = "select 氏名, 住所, LEFT(番号,LEN(番号)-2) + '-' + RIGHT (RTRIM(番号), 2) AS 番号2 from テーブル名 WHERE (氏名 LIKE N'か%' OR 氏名 LIKE N'き%' OR 氏名 LIKE N'く%' OR 氏名 LIKE N'け%' OR 氏名 LIKE N'こ%') ORDER BY 氏名";
}
if ($_GET['x']=='sa') { // さ行
$sql = "select 氏名, 住所, LEFT(番号,LEN(番号)-2) + '-' + RIGHT (RTRIM(番号), 2) AS 番号2 from テーブル名 WHERE (氏名 LIKE N'さ%' OR 氏名 LIKE N'し%' OR 氏名 LIKE N'す%' OR 氏名 LIKE N'せ%' OR 氏名 LIKE N'そ%') ORDER BY 氏名";
}
……………た行~ら行も同様のコードなので省略…………………
if ($_GET['x']=='wa') { // わ行
$sql = "select 氏名, 住所, LEFT(番号,LEN(番号)-2) + '-' + RIGHT (RTRIM(番号), 2) AS 番号2 from テーブル名 WHERE (氏名 LIKE N'わ%' OR 氏名 LIKE N'を%') ORDER BY 氏名";
}
$rc = mssql_query($sql,$cont);
print("</table>");
while ($array = mssql_fetch_array($rc)) {
print("<tr><td>");
print "".$array["氏名"]."";
print("</td><td>");
print "".$array["住所"]."";
print("</td><td>");
print "".$array["番号2"]."";
print("</td></tr>");
}
print("</table>");
mssql_close($cont);
?>
お礼
ありがとうございます。バッチシ! 以前「答えてねっと」で出した別の質問の時は「=」が無かった為にエラーになっていました。 便利だけど難しいですねVBAって。でも面白い! また宜しくお願いします。感謝