好吧,标题可能有点误导。我想要做的是添加一个最喜欢的系统到我的网站。我为我最喜欢的东西准备了一个专栏,我在每个商品ID之后都设置了一个:
。如何检查从我的数据库返回的字符串(1345:13456:232:524378:324
)如果它包含232
?如果是这样,我会回应preRend
否则我会回应insert
并插入该ID后跟:
。这是我到目前为止:PHP检查MySQL表是否包含值
<?php
session_start();
require_once(".conf.php");
$logged = $_SESSION['logged'];
$user = $_SESSION['user'];
$fwdfav = $_POST['id'];
$query = mysql_query("SELECT * FROM accountController WHERE user='$user'");
if ($logged == 1)
{
while ($row = mysql_fetch_array($query)) {
if ($row['fav-itms'] //This is where I got stuck. How to check if it contains a value.)
{
mysql_query("INSERT INTO accountController ('fav-itms') VALUES ('$fwdfav')");
echo 'inserted';
}
else
{
echo 'preRend';
}
}
}
else
{
echo 'nlog';
}
?>
非常感谢!我相信这里有很多错误,因为我很累。
**不要在关系数据库列中存储分隔字符串**使用[交接表](http://en.wikipedia.org/wiki/Junction_table)创建*多对多*关系 – Phil 2012-01-31 04:28:08
坏主意取决于系统,但假设你负责代码和数据库,它不是一种理智的方式,因为关系表非常易于管理,并且可以完全消除你在这里提到的问题。如果你的网站很小,那么爆炸与简单加入的处理没有什么区别,所以理性的论点是这种方法的可持续性,并且如果其他任何人还活着愿意拿起你离开的地方。如果我肯定继承了这种方法,我会生气。特别是考虑关系表的设置和管理有多容易。 – 2012-01-31 04:38:41
@JosephTorraca,那么拥有一个数据库有什么意义呢?为什么不把所有内容都转储为400列宽的CSV?答案当然是,你不能轻松地对你在该领域拥有的数据进行排序,加入,聚合或其他任何事情。你正在渲染你的数据库对这些数据没用。 – Brad 2012-01-31 04:39:34