我正在尝试使用MySQL和PHP创建任务系统。目前,我可以将任务标记为已完成,并显示完成它们的人员以及何时完成。我要做的是显示所有在$ row ['已完成']中已完成人员串中没有用户名的任务。但是,查询将返回用户标记为要执行的所有任务,即使他们已经完成了它。
代码:
<?php
$account = "LaughingQuoll"
// Create connection
$conn = new mysqli($host, $mysql_user, $mysql_pass, $db);
// Check connection
if ($conn->connect_error) {
die("Connection failed: ". $conn->connect_error);
}
$sql = "SELECT * FROM `tasks` WHERE `completed` NOT LIKE '$account' AND `members` LIKE '$account'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo $row['completed';
echo $row['taskname'];
echo $row['members'];
}
}
?>
数据库的结构: 这就是现在的情况。据说这个任务是为LaughingQuoll和Bobjane设定的,而LaughingQuoll和Bobjane已经完成了它。
| taskname | details |completion| startdate| members | completed | id|
| Create Class | Create the class | 2015-1-1 | 2014-1-1 | LaughingQuoll Bobjane | LaughingQuoll Bobjane | 1 |
我想要做的是搜索数据库中字符串内的单词(用户名),并显示所有不包含单词(用户名)的条目。我该怎么做?
即使已经标记了两个人,我也想显示用户已被标记的所有任务。
| taskname | details |completion| startdate| members | completed | id|
| Create Class | Create the class | 2015-1-1 | 2014-1-1 | LaughingQuoll Bobjane | | 1 |
我想显示上表中包含&#39; LaughingQuoll&#39;的所有任务。在条目中,无论条目在何处,如果条目是&#34; LaughingQuoll Bobjane&#34;。
非常感谢任何帮助。提前谢谢。
注意:查询回复正常。用户名正确。
答案 0 :(得分:2)
更改
$sql = "SELECT * FROM `tasks` WHERE `completed`
NOT LIKE '$account' AND `members` LIKE '$account'";
太
$sql = "SELECT * FROM `tasks` WHERE `completed`
NOT LIKE '%$account%' AND `members` LIKE '%$account%'";
那应该有用。 也许你已经添加了一些像
(`members` LIKE '$account%'
OR`members` LIKE '%$account'
OR `members` LIKE '%$account%')
而不是
`members` LIKE '%$account%'
只有完成&#39;太
无论如何,在MYSQL中使用LIKE时必须使用%