私はウェブサイトを作っています。私たちが必要とするのは、ユーザーの興味を最大限に引き出すことです。ユーザの関心は、フィールド「関心」のテーブル「ユーザ」に格納されます。strposが正しく動作しない
ここで、記事には異なる興味がタグ付けされ、ユーザーの関心に一致する記事が表示されます。記事はタグ付きの表に保存されます。だから私たちはすべての記事のタグを取得し、ユーザーの興味を選択します。記事に興味がある場合、コードはtrueを返し、そうでない場合はfalseを返します。
$select = "SELECT * from users where username='$username'";
$query = mysqli_query($dbc, $select) or die(mysqli_error($dbc));
while ($result = mysqli_fetch_array($query)) {
$interests = explode(",",$result['interests'],40);
foreach($interests as $interest) {
$select1 = "SELECT * from tagged";
$query1 = mysqli_query($dbc, $select1) or die(mysqli_error($dbc));
while ($result1 = mysqli_fetch_array($query1)) {
echo "Interests:".$interest."<br>";
echo "Tags:".$result1['tags']."<br>";
$pos = strpos($result1['tags'], $interest);
if ($pos===true) {
echo "Result:true<br>";
} else {
echo "Result:false<br>";
}
}
}
}
利害リストはので、私はそれを抽出し、配列にそれを爆発してからstrpos()
機能を使って記事のタグ内の配列要素の位置を見つけ、実際にカンマで区切られています。しかし、たとえそれらがfalse
であっても、すべての結果はtrue
と表示されます。
The resultのようになります。
のようなものでなければなりませんか?マニュアルをよくお読みください。 – Raptor
それは真実を返さない。しかし、それは偽を返す。もしそれを逆転すれば...私は真実になるだろう。そうではない? –
Strposは、開始位置から通常0の文字列を返します。 $ pos!== falseを使うと、$ posが0でないことに相当します。意味が見つかりません。 –