显示字符串不包含单词

时间:2015-12-10 21:38:53

标签: php mysql

我正在尝试使用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;。

非常感谢任何帮助。提前谢谢。

注意:查询回复正常。用户名正确。

1 个答案:

答案 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时必须使用%

希望有所帮助。