Проблем с %Like%

critrate

Registered
Здравейте.Значи имам код,който разделя думите от 1 поле(защото са разделени със запетая) и сравнява всяка от тях с информация от дадено поле в друга таблица.И идеята ми е да си направя,ако имам добавена информация в другата таблица в тази да излиза с линк,ако няма добавено в таблицата да излиза само текст.Работи,но проблема е ,че само някои намира,някои имена ги игнорира

мисля,че проблема е в заявката някъде... но .. да видим и вашите мнения

ето го кода:

Код:
<?php
$str = $seriesR['Akt'];
$ex = explode(",", $str);
$tags = '';
foreach ($ex as $str) {
$check = mysql_query("SELECT * FROM bio WHERE title LIKE '%$str%'") or die (mysql_error());
$check = mysql_num_rows($check);
if ($check >= 1) {
$tags .= '<a href="/tag:' . $str . '">' . $str . '</a><br/>';
}
else 
{
$tags .= '' . $str . '<br/>';
}
}
echo substr($tags, 0, -2);
?><
 
PHP:
$str = $seriesR['Akt'];

$ex = explode(",", $str);
$ex = array_filter($ex);
$ex = array_unique($ex);
$tags = '';
foreach ($ex as $k => $v) {
	$check = mysql_query("SELECT * FROM bio WHERE title LIKE '%".$v."%'") or die (mysql_error());
	$check = mysql_num_rows($check);
	if ($check >= 1) {
		$tags .= '<a href="/tag:' . $v . '">' . $v . '</a><br/>';
	}else{
		$tags .= '' . $v . '<br/>';
	}
	echo substr($tags, 0, -2);
}
 
Не става.Същото е ,даже твоят скрипт ми добавя тези,които ги има по два пъти.

С един приятел намерихме къде е проблема,но не и как да го разрешим.

ако в полето имам така

Иван
Петър
Георги
Анчо
Марин


а в другата таблица имам само името Георги то няма да излезне,защото нз и аз по каква причина ги дава подред,както са разделени със запетая.Т.е. ако имам Иван ще ми го покаже,ако имам Петър също,но стигне ли до Георги и аз го нямам ,другите след него и да ги имам няма да ги покаже.Не обяснявам много добре,но надявам се да сте ме разбрали.
 
$check = mysql_query("SELECT * FROM bio WHERE title LIKE '%{$str}%'") or die (mysql_error());

PHP:
<?php
$str = $seriesR['Akt'];
$ex = explode(",", $str);
$tags = '';
foreach ($ex as $str) {
$check = mysql_query("SELECT * FROM bio WHERE title LIKE '%{$str}%'") or die (mysql_error());
$check = mysql_num_rows($check);
if ($check >= 1) {
$tags .= '<a href="/tag:' . $str . '">' . $str . '</a><br/>';
}
else 
{
$tags .= '' . $str . '<br/>';
}
}
echo substr($tags, 0, -2);
?><
 
просто същото :)

не видя ли горе какво писах

това LIKE ги търси подред . ако подред нямам всяка една дум(т.е. съвпадение) не ги показва
 
Защо не пробваш вместо LIKE така:

$check = mysql_query("SELECT * FROM bio WHERE title = '%$str%'") or die (mysql_error());
 

Горе