我尝试了不同的解决方案: 第一:
>>> 0>None
True
>>> 4>None
True
>>> -4>None
True
>>> 4<None
False
>>> 0<None
False
>>> -2<None
False
和
第二
SELECT DISTINCT LEFT(EVENTNAAME, 1) FROM EVENTS WHERE DATE >= CURDATE()
两者都在phpMyAdmin中工作,但在我的php文件中,结果为空,因为它无法存储到变量中。
我做到了:
SELECT DISTINCT SUBSTRING(EVENTNAAME, 1, 1) FROM EVENTS WHERE DATE >= CURDATE()
var_dump delievers:
while ( $row = mysqli_fetch_object ( $result) ) {
$title = $row->EVENTNAME;
}
但变量为空。如果我在没有子字符串的情况下进行选择,或者完全显示事件的名称。
但我只想显示事件名的第一个字符并将其用作标题。因此我使用distinct,因为如果有一个事件具有相同的第一个字母,那么它只提供一个结果。
但这不是我的问题。我的问题是如何将其存储到php变量中,如果我不使用left或substring以及事件的完整名称,为什么它可以工作?
抱歉英语不好,我希望你能提供帮助。
答案 0 :(得分:0)
使用AS:
SELECT DISTINCT LEFT(EVENTNAME, 1) AS EVENTNAME FROM EVENTS WHERE DATE >= CURDATE()
答案 1 :(得分:0)
您需要为字段名称添加别名。一旦您申请表格或以其他方式创建&#34;衍生品&#34;查询中字段的值,该字段的名称不是php在获取行时将其视为名称的内容,例如:
SELECT foo, AVG(foo), SUM(foo), ...
会(不是真的,仅举例)产生
$row['foo'], $row['AVG(foo)'], $row['SUM(foo)']
在结果行中。
如果您对字段进行别名,则您可以完全控制字段名称在结果中的显示方式:
SELECT foo, AVG(foo) AS argle, SUM(foo) AS bargle
^^^^^^^^ ^^^^^^^^^
$row['foo'], $row['argle'], $row['bargle']