2016-07-12 10 views
0

PHPとMySQLを使用してカラム値に従ってテーブルからデータをフェッチする必要があります。以下の表を説明しています。カラム値に従ってテーブルからデータをフィルタリングする方法MySQLとPHP

db_area:

id  name  distance 

1  Raj   4  
2  Kalia   5  
3  Golu   10  
4  Pretty  15  
5  raghu   12  
6  Sallu   20  
7  Malli   25  
8  Nalia   1700 
9  Bull   7 
10  Kullu   3 

私は以下のいくつかの条件を説明しています。ここで

< 5 km->index 0 
5-10 km ->index 1 
10-20 km->index 2 
> 20 km->index 3 

ユーザーは、私が$dist値ごとにデータをフェッチする必要がある1つの入力i.e-$dist=0 or 1 or 2 or 3 .Hereを持っています。 $dist value is 0 then the data will fetch from table where distance column value is less than 5の場合も同様ですが、$dist=1の場合はdata will fetch from table where distance is in bettween 5 and 10 KMなどとなりますのでお手伝いください。

+0

参照CASEとして、このためのスイッチケースの文を使用して、あなたが – Strawberry

答えて

0

あなたは

$sql="select * from table Where 1=1 "; 
switch ($dist) { 
    case 0: 
    $sql.=" and distance < 5";// for index 0 
     break; 
    case 1: 
      $sql.=" and distance BETWEEN 5 and 10"; 
     break; 
    case 2: 
     $sql.=" and distance BETWEEN 10 and 20"; 
     break; 
    case 3: 
     $sql.=" and distance > 20";// greater then 20 
     break; 
    default: 
     $sql=$sql;// default case 
} 
+0

何である 'ここで、1 = 1 'と0の間のこの'距離で発見何に基づいて試みを行うことができます5 'はデータをフェッチするのに有効ですか?それをクリアしてください。 – satya

+0

'select * from table'と全く同じことは何もありません。インデックス0では 'distance <5'を使用できます – Saty

+0

これはあなたのために働いていますか? – Saty

-1
<?php 
switch($dist) { 
    case '0': 
     $sql = "SELECT * FROM db_area WHERE distance < 5"; 
    break; 
    case '1': 
     $sql = "SELECT * FROM db_area WHERE distance BETWEEN 5 AND 10"; 
    break; 
    case '2': 
     $sql = "SELECT * FROM db_area WHERE distance BETWEEN 10 AND 20"; 
    break; 
    case '3': 
     $sql = "SELECT * FROM db_area WHERE distance > 20"; 
    break; 
    default: 
     $sql = "SELECT * FROM db_area"; 
} 
$result = mysql_query($sql); 

if (!$result) { 
    echo "DB Error, could not query the database\n"; 
    echo 'MySQL Error: ' . mysql_error(); 
    exit; 
} 

while ($row = mysql_fetch_assoc($result)) { 
    echo $row['name']; 
    echo "<br />"; 
} 
?> 
+0

すべての 'mysql_ *'関数は、最新の安定版PHPから削除され、もはや存在しません。あなたのコードは古く、まったく動作しない可能性があります。 – Jocelyn

+0

@Jocelyn私は標準的な答えを書いただけです。質問者はこのロジックをオープンソースやフレームワークとして使用できます。 –

関連する問題