深吸一口气,真的不知道如何结合我的MySQL中的两个表, 我将向您展示我所使用的表格和需要组合的行。
名为post
的表格:
如您所见cat
表示类别,它是哪个类别(请参阅下面的类别表nameID
与此处的cat
相同)
例如我的网页www.site.com/category.php?nameid=NAMEID(table category)& id = ID(table post)需要合并所以如果我去?nameid = 1& id8页面应该是blanc或者给出错误,因为id = 8是类别2而不是1。
// BEGIN OF SHOWING CONTENT PAGE
if (isset($_GET['id'])){
$naamID = mysql_real_escape_string($_GET['nameID']);
$id = mysql_real_escape_string($_GET['id']);
$idnext = $id + 1;
$gn = (" SELECT * FROM category WHERE nameID='".$naamID."'") or die(mysql_error());
$go = (" SELECT * FROM post WHERE id='".$id."'") or die(mysql_error());
$gnn = mysql_query($gn) or die(mysql_error());
$goo = mysql_query($go) or die(mysql_error());
$gnnn = mysql_fetch_array($gnn);
$gooo = mysql_fetch_array($goo);
if(empty($gooo['youtube'])){
} else {
?> <h2> <?php echo htmlspecialchars($gooo["title"]); ?> </h2><br />
<?php
echo '<iframe width="560" height="315" src="//www.youtube.com/embed/'.$gooo["youtube"].'" frameborder="0" allowfullscreen></iframe><br />';
}
if(empty($gooo['pic'])){
} else {
?> <h2> <?php echo htmlspecialchars($gooo["title"]); ?> </h2><br />
<?php
echo '<img src="'.$gooo["pic"].'"/>';
}
}
?>
答案 0 :(得分:0)
SELECT table1.keyid FROM table1
UNION
SELECT table2.keyid FROM table2
我希望这个例子可以帮助你,尝试理解如何组合2个表
答案 1 :(得分:0)
<强>更新强>
根据我的理解,以下代码段可以解决您的问题
$row = mysql_query("SELECT p.cat, c.nameID FROM post p INNER JOIN category c ON p.cat = c.nameID WHERE p.cat = '".$id."' AND c.nameID = '".$naamID."' LIMIT 1");
if(mysql_num_rows($row)==0)
{
echo("This post doesn't exist on this category")
}
更新2:
<?if (isset($_GET['id']))
{
$naamID = mysql_real_escape_string($_GET['nameID']);
$id = mysql_real_escape_string($_GET['id']);
$row1 = mysql_query("SELECT p.cat, c.nameID FROM post p INNER JOIN category c ON p.cat = c.nameID WHERE p.cat = '".$id."' AND c.nameID = '".$naamID."' LIMIT 1");
if(mysql_num_rows($row1)==0)
{
echo("This post doesn't exist on this category");
}
else
{
$idnext = $id + 1;
$gn = (" SELECT * FROM category WHERE nameID='".$naamID."'") or die(mysql_error());
$go = (" SELECT * FROM post WHERE id='".$id."'") or die(mysql_error());
$gnn = mysql_query($gn) or die(mysql_error());
$goo = mysql_query($go) or die(mysql_error());
$gnnn = mysql_fetch_array($gnn);
$gooo = mysql_fetch_array($goo);
/*--------------your other display code when data is available-------------*/
}
}
?>
答案 2 :(得分:0)
我认为我不理解需要传递Categid,因为post id本身看起来像主键,所以你必须能够获取特定的帖子记录,并且可以检索与所请求的帖子链接的那个类别的名称类似的东西(你只需要在参数中传递post id)
SELECT youtube,title,c.name,pic FROM post p
INNER JOIN categories c
ON c.nameid=p.cat
WHERE p.id=2
如果您尝试获取请求的帖子记录以及来自所请求类别的所有帖子,那么您可以编写
之类的查询 SELECT youtube,title,c.name,pic
FROM post
INNER JOIN categories c
ON c.nameid=p.cat
WHERE (p.id=8 or cat=2)
希望这会有所帮助!
由于 苏雷什