PHP从MySQL的表中返回一个特定的字段


PHP echoing a specific field from a table in MySQL

首先,我对PHP很陌生,只有大约三周前才开始学习,但我喜欢它作为一种新的东西来学习!我有一个具体的问题,我似乎无法通过谷歌找到解决方案。我正在运行一个测试页面,它将形成一个最终产品的基础,为当地的娱乐俱乐部,运行比赛,并希望在他们的网站上在线显示结果。

我创建了一个MySQL数据库,并将其称为"结果",并将竞争结果的样本导入为CSV。我的代码连接到数据库工作,因为页面显示"数据库连接建立"消息。

数据库包含一个名为'z_any_year_results'的表,表的结构如下所示:-

Record_Number ,,,,,,, Field ,,,,,,,,,,,,,,,,,,,,,,,值
1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Field_1 ,,,,,,,,,,,,,,,,,,,,,,, Value_1
2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Field_2 ,,,,,,,,,,,,,,,,,,,,,,, Value_2
3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Field_3 ,,,,,,,,,,,,,,,,,,,,,,, Value_3
4,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Field_4 ,,,,,,,,,,,,,,,,,,,,,,, Value_4
5,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Field_5 ,,,,,,,,,,,,,,,,,,,,,,, Value_5

我知道如何使用

选择特定的表
mysql_select_db("results") or die(mysql_error());
$data = mysql_query("SELECT z_any_year_results FROM results")

,但我需要从网页的特定部分的表中回声一个特定的字段。例如,在页面的一个部分中,我需要输出包含值Field_1的字段,并在页面附近输出包含值Value_1的字段。但是在页面的另一部分中,我需要输出值为Field_4的字段,并在页面附近输出值为Value_4的字段。所以我想我的问题是如何从表中提取特定的数据块,以排除表中的所有其他记录,并将其作为网页上的回声输出。我在网上找不到任何用简单的循序渐进的方法来帮助像我这样的新手理解的东西。

谁能给我指出正确的方向,如何实现这一点?

提前感谢。

您正在使用一种称为键/值设计的数据设计类型。换句话说,每行都有数据项的名称及其值。对于初学者来说,这不是一种理想的设计,因为它会产生相当复杂的查询。

为了回答你的问题,如果你想要一个特定的命名字段的值,你可以使用这个查询。

SELECT Value FROM z_any_year_results WHERE Name = 'Field4'

但是,也许你想要一个更接近应用程序实体的设计。

您可能有一个实体,一个表,称为contestant,另一个称为contest,另一个称为prize

contestant是一个包含contestant_id, surname, givenname, email等列的表例1、埃里森,拉里,larry@oracle.com

然后你可以使用像SELECT * FROM contest WHERE YEAR(datestart) = 2016这样的查询,这将使你的查询更紧密地反映你的应用程序的逻辑。