我在mysql_fetch_assoc脚本上遇到了一点小麻烦,我希望你能帮上忙。
背景:我正在使用一个典型的MySQL查询来检索我的部分站点的数据,并从我的主表中回显来自不同字段等的结果,该表的结构并不重要,但它有一个惟一的id,即“job_id”
为了有多个与'job_id‘相关联的链接,我使用了一个toxi解决方案,它将catgories与每个'job_id’关联起来。
TABLE `tags` (
`tag_id` INT NOT NULL AUTO_INCREMENT,
`tag_name` VARCHAR(20) NOT NULL,
PRIMARY KEY (`tag_id`)
)
CREATE TABLE `tag_relational` (
`job_id` INT NOT NULL,
`tag_id` INT NOT NULL
)当我回显主表中的信息(使用' job_id ')时,我还希望回显与job_id匹配的所有链接,其中id使用:
$query = "SELECT * FROM tags t
JOIN tag_relational r
ON t.tag_id=r.tag_id
WHERE r.job_id = $job_id";
$result=mysql_query($query) or die(mysql_error());
$cats=mysql_fetch_assoc($result);在我的代码中,我使用它来回显匹配的catagories:
<p>Job Catagories | <?php while ($cats=mysql_fetch_assoc($result)) { echo $cats['tag_name'];}?></p>我有两个问题:
上面的
group_concat,所以我也需要一些帮助。发布于 2011-08-01 20:26:24
因为mysql_fetch_assoc已经在while循环之前被调用过一次,所以第一行总是被丢弃。
这应该可以解决你的问题:
$query = "SELECT * FROM tags t
JOIN tag_relational r
ON t.tag_id=r.tag_id
WHERE r.job_id = $job_id";
$result=mysql_query($query) or die(mysql_error());
<p>Job Catagories |
<?php
$first = true;
while ($cats=mysql_fetch_assoc($result)) {
if($first){
$first = false;
} else{
echo ", ";
}
echo $cats['tag_name'];
}
?>
</p>发布于 2012-12-28 19:27:14
在group_concat中使用分隔符。见下面的例子
mysql> SELECT student_name,
-> GROUP_CONCAT(DISTINCT test_score
-> ORDER BY test_score DESC SEPARATOR ' ')
-> FROM student
-> GROUP BY student_name;https://stackoverflow.com/questions/6903897
复制相似问题