【发布时间】:2024-08-31 08:10:03
【问题描述】:
如果名称与我在 URL 中传递的 $_GET['name'] 变量匹配,我正在我的 DB 中搜索一个表以返回一个勾号。
如果名称存在,我希望显示一个勾号,如果不存在,则显示一个叉号。
目的是填充可用性列表/时间表。
我目前的代码;
<?php foreach($rota_sun as $rota_sunday): ?>
<?php if(strpos($rota_sunday['person_name'], $_GET['name']) !== false) { ?>
<span style="color:green; font-size:22px;"><i class="fa fa-check" aria-hidden="true"></i></span>
<?php } else { ?>
<span style="color:red; font-size:22px;"><i class="fa fa-times" aria-hidden="true"></i></span>
<?php } ?>
<?php endforeach; ?>
我的查询代码是;
$query = "SELECT
rota_sunday.id AS rota_id,
rota_sunday.person_id,
rota_sunday.person_name
FROM rota_sunday WHERE rota_sunday.person_name = '$_GET['$name']'
";
try
{
$stmt = $conn->prepare($query);
$stmt->execute();
}
catch(PDOException $ex)
{
die("Failed to run query: " . $ex->getMessage());
}
$rota_sun = $stmt->fetchAll(PDO::FETCH_ASSOC);
我的表格包含三行;
- 身份证
- person_id
- 人名
我使用的数组是;
Array
(
[0] => Array
(
[rota_id] => 16
[person_id] => 0
[person_name] => Gina
)
)
您会看到 Gina 存在 - 因此,如果 ?name=Gina 在我的 URL 中,应该显示一个勾号,但 ?name=Fred 或 ?name=John 等在我的 URL 中应该显示一个叉号。
问题:当名称存在时显示勾号,但当名称不存在时不显示叉号。
【问题讨论】:
-
目前的问题是什么?是否总是输入if或else?
-
你检查过 $rota_sunday['person_name'] 和 $_GET['name'] 的值了吗?您应该检查空格和大小写。
-
名称存在时显示勾号,但名称不存在时不显示叉号。
-
@Anant 这就是我想要的 - 准确地匹配名称并在为真时显示一个勾号。没有匹配显示叉号。
-
@Anant 我已将它添加到我原来的问题中 - 你会看到 Gina 存在 - 所以如果
?name=Gina在我的 URL 中应该显示一个勾号,但?name=Fred或?name=John等在我的 URL 中应该显示一个叉号。
标签: php mysql variables if-statement