電子書籍の厳選無料作品が豊富!

sql文のswichをif分で変更したい。
下記のswitch文のlimitの範囲をユーザーが<a href="sqlpage1.php?sex=男&p=2">2ページ目</a>,<a href="sqlpage1.php?sex=男&p=3">3ページ目</a>,<a href="sqlpage1.php?sex=男&p=4">4ページ目</a>・・・・・・などを選択しクリックした場合にlimitの範囲を変更したいのですが(例
1ページ目・0~10、2ページ目・11~20、3ページ目・21~30、4ページ目・31~40・・・・・・)
if文はどう書けばいいですか?
ページはcssが一緒なので変えなくていいかなと思い一緒にしました。

以下、デフォルト(sqlpage1.php?sex=男&p=1)のものです。

switch($_REQUEST['sex'])
{
case 男;
$sql = 'SELECT * FROM human where sex="男" order by limit (0,10)';ここを変更したい。
break;
case 女;
$sql = 'SELECT * FROM human where sex="女" order by limit 0,10';
break;
case 中性;
$sql = 'SELECT * FROM human where sex= "中性" order by limit 0,10';
break;
}

A 回答 (3件)

$para_p = $_REQUEST['p'];


$page_no = 整数に変換($para_p);
$offset_no = ($page_no < 1)? 0: 10 * ($page_no - 1);
$sql_limit = " limit $offset_no, 10";
...
$sql = 'select * from ... where ... order by ...' . $sql_limit;
    • good
    • 0

No.1です。



ちょっと気になったのはSQL文の

>where sex="男"

って結局のところ

>$_REQUEST['sex']

の値なのでは?
それを文字列連結に使用しないのももったいない感じはします。
この言語が不明なので適切な回答が出来ずごめんなさい。

憶測で書くのなら

$sql = 'SELECT * FROM human where sex="' + $_REQUEST['sex'] + '" order by limit (0,10)';

みたいな?
    • good
    • 0

全くの未経験者で申し訳ないですが。



連想配列で、KEYをページナンバー、値?に希望する範囲を格納しておいて、指定されたページナンバーから値を取得し文字列に連結させるとかはできないのでしょうか?
又は配列を用いてそのインデックス番号は先頭が0なので『ページ数 - 1』が使えそうな気もしますし。

或いは無理だからIf文を選択されたと言うのであればスル~してください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!