0

URL 文字列内の変数に焦点を当てて検索したいと考えています。現在、フォームベースの検索を使用しています。

これを使う

<?php
    include('db.php');  // include your code to connect to DB.
    $tbl_name="mobile";     //your table name

$whereClauses = array(); 
if (! empty($_POST['Model'])) $whereClauses[] ="model='".mysql_real_escape_string($_POST['Model'])."'"; 
if (! empty($_POST['Mins'])) $whereClauses[] ="minutes='".mysql_real_escape_string($_POST['Mins'])."'"; 
if (! empty($_POST['Texts'])) $whereClauses[] ="texts='".mysql_real_escape_string($_POST['Texts'])."'"; 
if (! empty($_POST['Freegifts'])) $whereClauses[] ="free_gift='".mysql_real_escape_string($_POST['Freegifts'])."'"; 
if (! empty($_POST['Network'])) $whereClauses[] ="network_name='".mysql_real_escape_string($_POST['Network'])."'"; 
if (! empty($_POST['Merchant'])) $whereClauses[] ="merchant_category='".mysql_real_escape_string($_POST['Merchant'])."'"; 
$where = ''; 
if (count($whereClauses) > 0) { $where = ' WHERE '.implode(' AND ',$whereClauses); } 
$sql = mysql_query("SELECT * FROM $tbl_name".$where); 
?>

ただし、これを自分のページに追加しました:

<?php
    $model = $_GET['model']; //gets model from URL
    $mins = $_GET['mins']; //gets mins from URL
    $texts = $_GET['texts']; //gets mins from URL
    $freegift = $_GET['free-gift']; //gets mins from URL
    $network = $_GET['network']; //gets mins from URL
    $plan = $_GET['plan']; //gets mins from URL
?>

すべての変数が必要なわけではありません。どんな助けでも大歓迎です。

前もって感謝します :)

4

1 に答える 1

0

値または NULL を返す多くのオプションがあります。

<?php
       $model = (isset($_GET['model']) ? $_GET['model'] : NULL);
        $mins = (isset($_GET['mins'])  ? $_GET['mins']  : NULL);    
       $texts = (isset($_GET['texts']) ? $_GET['texts'] : NULL); 
    $freegift = (isset($_GET['free-gift']) ? $_GET['free-gift'] : NULL);
     $network = (isset($_GET['network'])   ? $_GET['network']   : NULL);
        $plan = (isset($_GET['plan'])  ? $_GET['plan']  : NULL);
?>

これは、対応する $_GET 要素から変数を取得します (セットが 1 つある場合のみ)。


代替構文 (短い):

<?php
       $model = ($_GET['model'] ? $_GET['model'] : NULL);
        $mins = ($_GET['mins']  ? $_GET['mins']  : NULL);    
       $texts = ($_GET['texts'] ? $_GET['texts'] : NULL); 
    $freegift = ($_GET['free-gift'] ? $_GET['free-gift'] : NULL);
     $network = ($_GET['network']   ? $_GET['network']   : NULL);
        $plan = ($_GET['plan']  ? $_GET['plan']  : NULL);
?>

代替(ただしテストされていません):

<?php
$vars = array('model','mins','texts','free-gift','network','plan');

foreach($vars as $value) {
    $$value = (isset($_GET[$value]) ? $_GET[$value] : NULL);
}
?>

編集: それに基づいて WHERE 句を設定するには、次のことをお勧めします。

<?php
$vars = array('model','mins','texts','free-gift','network','plan');

foreach($vars as $value) {
    $$value = (isset($_GET[$value]) ? $_GET[$value] : NULL);
    unset $vars[$value];  //sweeping the NULL ones
}
$where_clause = $vars[0]; //the only remaining value after previous cleanup
?>
于 2012-04-08T14:37:12.217 に答える