-1

我网站上的用户可以添加他们的朋友。我尝试这样做的方式是当他们添加一个新朋友时它会更新“朋友”列,所以..如果用户“bobby”已经有朋友叫 tom 和 Joe,并且他们想添加另一个朋友“bob”它会更新该列,使其现在看起来像“汤姆、乔、鲍勃等..”所以..我的问题是这些朋友中的每一个在一个名为items他们的信息年龄、城市等的表中都有数据。当鲍比点击按钮“显示()”我需要它来检索“鲍比”朋友列中的每个朋友及其信息。所以这就是我所在的地方。

$show = mysql_query("SELECT `friends` FROM `Friends` WHERE`Username`='".$_SESSION['Username']."' ") or die(mysql_error());
$showw = mysql_fetch_object($show) or die(mysql_error());
$yup = mysql_query("SELECT * FROM `items` WHERE Username LIKE '%".($showw->friends)."%' ") or die(mysql_error()); 

它不会返回任何数据,因为我想不出一种方法来对名称进行排序。我可以告诉它在每个逗号后获取每个名称吗?

4

1 回答 1

1

首先,您应该有一个单独的表来将朋友映射到特定用户。如果你按照现在的方式继续下去,你将面临很多麻烦。

无论如何,即使不建议这样做,在您的情况下,

$show = mysql_query("SELECT `friends` FROM `Friends` WHERE`Username`='".$_SESSION['Username']."' ") or die(mysql_error());
$showw = mysql_fetch_object($show) or die(mysql_error());

$friends = "'" . str_replace(", ", "', '", $showw->friends) . "'";
$yup = mysql_query("SELECT * FROM `items` WHERE Username IN (". $friends .") ") or die(mysql_error()); 

IN将过滤匹配所有逗号分隔的值。

PS:请考虑使用 PDO 或任何其他数据库库,因为mysql_*函数在下一个版本中将被弃用 :)

于 2012-10-22T01:32:11.153 回答