Php 从表_name中选择*,其中列_nameِ='value'
我有一张表格a,有6列天,les1,les2,les3,les4,les5Php 从表_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
+-----------------------------------------------------+
| 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语句不应该要求引用,除非您使用保留关键字。不知道这里有什么问题。