我无法使用 php mysql 查询中的时间函数找到该行是不是已存在于 mysql db 中?
Posted
技术标签:
【中文标题】我无法使用 php mysql 查询中的时间函数找到该行是不是已存在于 mysql db 中?【英文标题】:I am unable to find if the row already exists in mysql db using time function in php mysql query?我无法使用 php mysql 查询中的时间函数找到该行是否已存在于 mysql db 中? 【发布时间】:2019-07-08 23:54:23 【问题描述】:我目前正在开发一个模块,教师可以通过选择一个下拉列表(选择框)向学生发布出勤率,该下拉列表由教师提供的信息动态生成。当教师选择特定年份和部门时,受尊敬的学生列表是检索并显示在表格中。但要求是,一旦出勤被发布到特定的特定班级/部分,教师就不能再次打开它
我尝试使用 mysql_num_rows() 函数来检查数据库中是否已经存在任何行,或者在该特定日期不存在。但它没有按照我想要的方式工作
这是我的模块的全部代码,不包括 db 文件
<form action="take.php" method="Post">
<br>
<table class="table table-bordered table-hover ">
<tr>
<th>S.no</th>
<th>Student Name</th>
<th>Roll Number</th>
<th>Present</th>
<th>Absent</th>
</tr>
<?php
if (isset($_POST['search']))
$stu="Student";
$yr=$_POST['year'];
$se=$_POST['section'];
$subdr=mysql_query("SELECT subject FROM schedule WHERE id='$cuid' AND day='$d' AND class='$yr' AND section='$se'");
$subj=mysql_fetch_assoc($subdr);
$dis_date=date("Y-m-d H:i:s");
$subj_d=$subj['subject'];
$display=mysql_query("select * from attendance_records where id='$cuid' AND ondate='".$dis_date."' And subject='$subj_d'");
$rec=mysql_num_rows($display);
if($rec)
echo "Records posted";
else
$display=mysql_query("select name,id from login where role='$stu' AND academic='$yr' AND section='$se'");
$sno=0;
$count=0;
while ($row=mysql_fetch_array($display))
$sno++;
?>
<tr>
<td><?php echo $sno ?></td>
<td>
<?php echo $row['name'] ?>
<input type="hidden" name="name[]" value="<?php echo $row['name'] ?>">
</td>
<td>
<?php echo $row['id'] ?>
<input type="hidden" name="id[]" value="<?php echo $row['id'] ?>">
</td>
<td>
<input type="radio" name="attendance_status[<?php echo $count ?>]" value="Present" required>
</td>
<td>
<input type="radio" name="attendance_status[<?php echo $count ?>]" value="Absent" required>
</td>
</tr>
<?php
$count++;
?>
<tr>
<td colspan=5>
<center><label><?php echo "Subject : ".$subj['subject']; ?></label></center>
</td>
</tr>
<input type="hidden" name="yr" value="<?php echo $_POST['year']; ?>">
<input type="hidden" name="set" value="<?php echo $_POST['section']; ?>">
<?php
?>
</table>
<center><input type="submit" name="submit" value="Submit" class="btn btn-primary" >
</center>
</div>
预期的输出应该根据如下查询显示一条消息“已发布记录”:
$dis_date=date("Y-m-d H:i:s");
$subj_d=$subj['subject'];
$display=mysql_query("select * from attendance_records where id='$cuid'
AND ondate='".$dis_date."' And subject='$subj_d'");
$rec=mysql_num_rows($display);
if($rec)
echo "Records posted";
else
#display the student list
【问题讨论】:
@MD.JubairMizan 兄弟你能帮帮我吗?mysql_XXX
函数已过时。它们已被弃用多年,并已从最新的 PHP 版本中完全删除。您应该使用mysqli_XXX
或PDO
,并使用准备好的语句而不是将变量连接到 SQL 中。
现在我知道了 mysqli_XXX 函数的使用,我真的认为两者是相同的,并且可以使用不同的语法进行相同的工作,而且我们的先生并没有教我们所有这些东西,谢谢让我知道@Barmar
很遗憾,许多学校没有更新他们的课程。
@Barmar 可悲的现实却是真实的
【参考方案1】:
你的任务是:
$dis_date=date("Y-m-d H:i:s");
所以$dis_date
包含日期和时间。只有当表中的记录具有完全相同的时间而不是相同的日期时,查询才会匹配。
你应该把时间排除在变量之外:
$dis_date=date("Y-m-d");
如果表中列的数据类型是DATETIME
,还需要从中过滤掉时间,用:
AND DATE(ondate)='$dis_date' And subject='$subj_d'"
如果数据类型是DATE
,则不需要这样做。
【讨论】:
我一定会检查一下并在明天之前通知您 试过但没有影响,我的输出没有变化 您能否编辑问题并显示表格架构、示例内容和预期结果? 你能通过teamviewer联系我吗? 实际上是新的,我不知道如何通过文本键入 Db 模式,我的要求是数据是否在特定日期已经存在于表中,用户不应该能够在特定日期发布任何数据(应禁用提交按钮)以上是关于我无法使用 php mysql 查询中的时间函数找到该行是不是已存在于 mysql db 中?的主要内容,如果未能解决你的问题,请参考以下文章
使用多个 php 函数查询单个(mysql)数据库的正确方法
如何在 PHP 函数中正确使用 MySQL 查询? [关闭]