我正在尝试使用 MySQL 和 PHP 创建一个任务系统。目前我可以将任务标记为已完成并显示谁完成了它们以及何时完成。我想要做的是显示所有任务,这些任务在 $row['completed'] 中的已完成人员字符串中没有该人员的用户名。但是,即使用户已经完成,查询也会返回用户被标记为要执行的所有任务。
代码:
<?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 |
我想显示上表中条目中包含“LaughingQuoll”的所有任务,无论它在条目中的哪个位置以及条目是否为“LaughingQuoll Bobjane”。
如有任何帮助,我们将不胜感激。提前致谢。
注意:查询回显正常。用户名在其中正确。
最佳答案
改变
$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%'
仅,对于“已完成”也是如此。
无论如何,在 MYSQL 中使用 LIKE 时必须使用 %
希望有所帮助。
关于php - 显示字符串不包含单词的所有 MySQL 条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34212222/