Php 从表_name中选择*,其中列_nameِ='value'

Php 从表_name中选择*,其中列_nameِ='value',php,mysql,Php,Mysql,我有一张表格a,有6列天,les1,les2,les3,les4,les5 +-----------------------------------------------------+ | days | les1 | les2 | les3 | les4 | les5 | ------------------------------------------------------- | sat | 2 | 5 | 9 | 10

我有一张表格a,有6列天,les1,les2,les3,les4,les5

+-----------------------------------------------------+
|  days  |  les1  |  les2  |  les3  |  les4  |  les5  |
-------------------------------------------------------
| sat    |   2    |   5    |   9    |   10   |   30   |
| mon    |   50   |   2    |   2    |   4    |   5    |
| Fri    |   6    |   1    |   2    |   8    |   4    |
| wed    |   8    |   0    |   3    |   6    |   3    |
-------------------------------------------------------
在另一个表B中,我有3个columnid,TName,LName

 ___________________________
|  id    |  TName |  LName |
----------------------------
| 1      |   M.N  |   les1 |
| 2      |   T.G  |   les5 |
| 3      |   Z.GH |   les2 | 
| 4      |   J.H  |   les4 | 
----------------------------
我需要用php中的代码从表A中找到一些值,类似于以下代码:

  $les = mysql_query("SELECT * FROM `table_B` WHERE `id` = '3' ");

     $les_f = mysql_fetch_array($les);

    $lesson = $les_f['LName'];  //so the $lesson value = 'les2'  

    $list = mysql_query("SELECT * FROM `table_A` WHERE $lesson = '0' ");
     $showresult = mysql_fetch_array($list);

$result = $showresult['days'];  //  it should show me 'wed' from tableA in days column 

请帮助编写此代码…

尝试下面的代码以了解结果

$les = mysql_query("SELECT * FROM `table_B` WHERE `id` = '3' ");
while($row = mysql_fetch_assoc($les)) {
    $lesson = $row['LName'];  //so the $lesson value = 'les2'  
    $list = mysql_query("SELECT * FROM `table_A` WHERE $lesson = '0' ");
    while($showresult = mysql_fetch_assoc($list)) {
        echo $result = $showresult['days'];  //  it should show me 'wed' from tableA in days column 
    }
}

谢谢

我建议改进您的数据库设计。将表A中的列缩减为day、number、les,将表B中的列缩减为id、TName、LId

表A应如下所示:

+---------------------------+
|  day   | number |  les   |
----------------------------
| sat    |   2    |   1    |
| sat    |   5    |   2    |
| sat    |   9    |   3    |
| sat    |  10    |   4    |
| sat    |  30    |   5    |
|        |        |        |
| mon    |  50    |   1    |
| mon    |   2    |   2    |
| mon    |   2    |   3    |
| mon    |   8    |   4    |
| mon    |   5    |   5    |
| ...    | ...    |  ...   |
----------------------------
|  id    |  TName |  LId |
----------------------------
| 1      |   M.N  |      1 |
| 2      |   T.G  |      5 |
| 3      |   Z.GH |      2 | 
| 4      |   J.H  |      4 | 
----------------------------
表B应如下所示:

+---------------------------+
|  day   | number |  les   |
----------------------------
| sat    |   2    |   1    |
| sat    |   5    |   2    |
| sat    |   9    |   3    |
| sat    |  10    |   4    |
| sat    |  30    |   5    |
|        |        |        |
| mon    |  50    |   1    |
| mon    |   2    |   2    |
| mon    |   2    |   3    |
| mon    |   8    |   4    |
| mon    |   5    |   5    |
| ...    | ...    |  ...   |
----------------------------
|  id    |  TName |  LId |
----------------------------
| 1      |   M.N  |      1 |
| 2      |   T.G  |      5 |
| 3      |   Z.GH |      2 | 
| 4      |   J.H  |      4 | 
----------------------------
然后,您可以通过单个SQL查询获取数据:

SELECT * FROM table_b b
    JOIN table_a a
    ON b.les = a.LId
    WHERE a.number = 0
更改:

$list = mysql_query("SELECT * FROM `table_A` WHERE $lesson = '0' ");
致:


这是问题的解决方案吗

我看不到表之间有主键/外键关系我的表只是两个例子…两个表的主键都是'id',我忘了在表A中写这个。。。。我的问题是:从“表a”中选择*,其中变量=something您有样本数据。你想得到什么样的结果?这些列是什么意思?如果将表A的列名存储在表B中,这看起来像是糟糕的数据库体系结构。为什么不将表A减少为3列“day”、“number”、“les”?数据库体系结构的可能重复是错误的。这段代码可以工作,但性能会下降。我建议改变你的数据库结构。为什么?你建议我删除这个问题让我们尝试另一个问题:我有一个select查询==>select*FROM表a WHERE.$som.='4'好吗?让我们想想$som='les'。。。。它应该可以工作…但在我的代码中它没有工作…为什么???我刚刚指出,您的数据库设计不是很好。您收到的错误消息是什么?因为你的代码看起来不错。谢谢你…我将更改我的数据库设计…代码看起来不错…但是当我使用它时没有结果!!我在电报机器人中使用此代码…电报从用户处获取一个代码,然后在我的数据库中搜索此代码…如果找到什么…在键盘上为用户显示值…何时编写此代码:从“TABLE_a”中选择*其中“les2”=“1”…我将得到结果…但当我使用此代码时:从“TABLE_a”中选择*其中。$som='1' . $som='les2'。。。。。没有结果您是否检查mysql错误?实际上,SQL语句不应该要求引用,除非您使用保留关键字。不知道这里有什么问题。