【发布时间】:2017-06-20 19:15:48
【问题描述】:
我正在尝试从 PHP 中的字符串中删除最后 7 个字符,然后再将其作为结果写入表中。当我在 Navicat 中创建 Mysql 查询时,我得到了所需的字符串,但我无法将它移动到 PHP 中并使其工作。这是工作中的 Mysql 查询(在 Navicat 中):
SELECT
SUBSTRING(ssp_subjects.uid, 1, LENGTH(ssp_subjects.uid) -7),
ssp_subjects.namefirst,
ssp_subjects.namelast,
ssp_subjects.imageactual,
ssp_subjects.accesscode,
ssp_subjects.correction,
ssp_subjects.correctiondate
FROM
ssp_subjects
WHERE
ssp_subjects.correction = 1
返回:
CCU-SOC-14-05-31-A KYLE O'CONNOR 29 GFKDPFLM3F 1 2017-06-20 09:14:39
(这是正确的,因为它修剪了 UID 末尾的最后 7 个字符。)
在 PHP 中,我试图构建一个类似的表,但我似乎无法正确编写 SUBSTRING 语句。这就是我在 PHP 中构建表格的方式:
$sql = "SELECT
ssp_subjects.correctiondate,
ssp_subjects.namelast,
ssp_subjects.namefirst,
ssp_subjects.imageactual,
ssp_subjects.accesscode,
ssp_subjects.uid
FROM
ssp_subjects
WHERE
ssp_subjects.correction = 1";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
echo "<table><tr><th>Date</th><th>Job Name</th><th>Team Number</th><th>Type</th><th>Last Name</th><th>First Name</th><th>Access Code</th><th>Sequence</th><th>Card</th><th>Image</th><th>UID</th><th>Order</th></tr>";
// output data of each row
while($row = $result->fetch_assoc()) {
echo "<tr>
<td>".$row["correctiondate"]."</td>
<td><p>Corrections</p></td>
<td><p>10</p></td>
<td><p>Player</p></td>
<td>".$row["namelast"]." </td>
<td>".$row["namefirst"]."</td>
<td>".$row["accesscode"]." </td>
<td><p>1000</p></td>
<td>".$row["imageactual"]." </td>
<td> ".$row["uid"]." </td>
<td><p>1x1</p></td>
</tr>";
}
echo "</table>";
} else {
echo "0 results";
}
当我尝试在 PHP 中添加 SUBSTR 时,它返回“未定义索引:uid”错误,而不是修剪后的字符串。
$sql = "SELECT
ssp_subjects.correctiondate,
ssp_subjects.namelast,
ssp_subjects.namefirst,
ssp_subjects.imageactual,
ssp_subjects.accesscode,
SUBSTRING(ssp_subjects.uid, 1, LENGTH(ssp_subjects.uid) -7)
FROM
ssp_subjects
WHERE
ssp_subjects.correction = 1";
$result = $conn->query($sql);
提前致谢!
【问题讨论】:
-
substr($string,-7) -
我相当肯定相同的 SQL 将在您的查询中起作用。为什么在 PHP 中这样做?
-
我使用 PHP 是因为我需要创建一个可以由我们的实验室技术人员复制的流程。我们的内部数据库是用 PHP 编写的。最终目标是创建一个可以通过 CSV“下载”的表。我刚刚开始尝试构建表格。
-
嗯,也许我问错了问题。我为自己是菜鸟而道歉。几天来,我一直在尝试自己解决这个问题。我很抱歉,但我没有其他人可以问。我正在尝试删除 PHP 创建的表中的最后 7 个字符,但我无法弄清楚如何实现提供的解决方案“substr($string,-7)”。我会努力弄清楚的!谢谢!