如何通过在PHP和MySQL中使用条件连接两个表来获取数据

时间:2016-07-09 12:12:47

标签: php mysql

我需要一个帮助。我需要通过使用PHP和Mysql中的某些条件连接两个表来获取数据。这里的条件有点棘手。让我先解释一下这两个表。

  

db_restaurant:

member_id      hotel_name     subcat_id     distance

   1              Maa           10          15


   2             Tprutee         4          1700


    3              Tarini        5          10

    4            Tasty           10         7


   5             sagar            5          21


   6             Magar            3          18


   7            bagar             5          20

   8            duat              4           5
  

db_subcat:

subcat_id          subcat_name

  3                  subcat1

  4                  subcat2

  5                  subcat3

  10                 subcat4

我需要加入上面两个表并使用下面给出的一些条件获取subcat_id and subcat_name

  

提示:

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

从上面可以清除if distance is <5 KM then index is 0 ,distance is 5-10 KM index is 1 and so on。这里用户只有输入$ distance = 0或$ distance = 1或$ distance = 2或$ distance = 3来获取所需的数据。总的来说我的要求是假设用户输入$distance=2所以所有子类别名称和id应该在10-20表的距离db_restaurant内获取,依此类推。请帮帮我。

1 个答案:

答案 0 :(得分:0)

在PHP中生成sql语句非常容易。 类似的东西:

Bundle extras = getIntent().getExtras();byte[] b = extras.getByteArray("picture");Bitmap bmp = BitmapFactory.decodeByteArray(b, 0, b.length);ImageView image = (ImageView) findViewById(R.id.imageView1);

或者针对同一问题的纯SQL解决方案:

$sql = "select r.hotel, s.id, s.name
from db_subcat s
left join db_restaurant r on s.id = r.subcat
where r.distance";

switch ($hint)
{
    case 1:
        $sql .= " < 5";
        break;
    case 2:
        $sql .= " between 5 and 10";
        break;
    case 3:
        $sql .= " between 10 and 20";
        break;
    case 4:
        $sql .= " < 20";
        break;
}

$res = mysql_query($sql);