0
CODE:使用循环生成PHP中的SQL查询
$nerd_result = mysql_query("select * from nerd_profile where nerd_reg_no = '$reg_no'");
$nerd_data = mysql_fetch_array($nerd_result);
$tags = array();
$tags = explode(",",$nerd_data['nerd_interests']);
for($i = 0; $i < sizeof($tags)-1; $i++)
{
if($i != sizeof($tags)-2)
{
$sub_query = $sub_query."`tags` like %".$tags[$i]."% or ";
}
else
{
$sub_query = $sub_query."`tags` like %".$tags[$i]."% ";
}
}
$proper_query = "select * from `qas_posts` where ".$sub_query." and `post_date` like '%$today%'";
$result = mysql_query($proper_query);
while($each_qas = mysql_fetch_array($result))
说明:
我加入类似条款与PHP变量沿着一个字符串,并将进一步相连来带有类似子句的变量来。在我回应,我得到我想要的完美的查询,但
mysql_fetch_array()
不一样,如果我硬编码,它的作品完美我究竟做错了接受生成的查询,而结束?我可以这样做吗?
这'%”。$标签[$ i]。 “%'需要是这个''%”。$标签[$ i]。“%”'。你缺少报价。另外,初始化变量通常是一个好主意,例如'$ sub_query =“”;'。 – imtheman 2014-09-10 21:36:15
ohh我的天啊....引用...为什么我没有看到...我一直在网上看了一个小时吧..谢谢:) – 2014-09-10 21:38:46
* PSA:* mysql_ *'函数是[不推荐使用PHP 5.5](http://php.net/manual/en/faq.databases.php#faq.databases.mysql.deprecated)。不建议您编写新的代码,因为这会阻止您将来升级。相反,请使用[MySQLi](http://php.net/manual/en/book.mysqli.php)或[PDO](http://php.net/manual/en/book.pdo.php)和[是一个更好的PHP开发人员](http://jason.pureconcepts.net/2012/08/better-php-developer/)。 – 2014-09-10 21:40:09