2013-12-19 14 views
0

查询如何基 “图形” 我有2个表:Msqli,从2个不同的表

  • 表1)courses_cat(这一个有一个 “标题” 字段中)
  • 表2)courses(此有一个“父”字段,我想用于“组”,这个“父母”等于“标题”

所以我需要把“表格2”的内容“图形”放入表格1 。

在这里我的代码(两个表分开):

<?php 
$query = $db->prepare('SELECT title, body, showeb, datapost FROM courses_cat WHERE showeb="si"'); 
$query->execute(); 
$query->store_result(); 
$query->bind_result($title, $body, $showeb, $datapost); 
while ($query->fetch()) 

echo " <div class='pblock'><h2>$title</h2><pre>$body</pre></div> "; 
?> 

<?php 
$query2 = $db->prepare('SELECT parent, title, body, showeb, datapost FROM courses WHERE showeb="si"'); 
$query2->execute(); 
$query2->store_result(); 
$query2->bind_result($parent, $title, $body, $showeb, $datapost); 
while ($query2->fetch()) 

echo " <div id='courseblock'><a href='#'><span class='top'>$title</span><span class='content'>$shortbody</span></a></div>"; 
?> 
+4

这里“图形”是什么意思? – randak

+0

因此,听起来你正试图将这些课程按类别分类,并列入每个类别的课程中?你的意思是'courses.parent'与'courses_cat.title'有相同的价值吗?如果是这样,你只是想通过一个连接的单个查询来获取所有这些信息。 –

+0

我试图更好地解释我的问题(请参阅下文),谢谢! – Roko

回答

0

这里我需要的东西我工作的代码(简版).. 。

<?php 
$cat = mysqli_query($db,"SELECT title AS catTitle, body AS catBody FROM courses_cat"); 
$result = mysqli_query($db,"SELECT parent, title, shortbody FROM courses"); 

//array x categories 
$category = array(); while ($row = mysqli_fetch_assoc($cat)) {$category[] = $row;} 

//array x courses 
$course = array(); while ($row = mysqli_fetch_assoc($result)) {$course[] = $row;} 

// here my divs 
$cat_div=""; 
foreach ($category as $row) { 
$cat_div = $row['catTitle']; 
echo "<div class='pblock'>"; 
echo "<h2>".$row['catTitle']."</h2><pre>".$row['catBody']."</pre>"; 

foreach ($course as $row) { 
if ($cat_div == $row['parent']) { 
echo "<div id='courseblock'><a href='#'><span class='top'>".$row['title']."</span><span> class='content'>".$row['shortbody']."</span></a></div>";}} 
echo "</div>";} 

$cat->free_result(); 
$result->free_result(); 
mysqli_close($db); 
?> 
2

我不知道我的理解100%的最终结果应该是什么,但我敢肯定,你可以在你的两个查询合并成一个;遍历这个正确可能会解决您的问题:

SELECT cat.title as CatTitle, cat.body as CatBody, courses.title as CourseTitle, courses.body as CourseBody -- and any other fields you need like that 
FROM courses_cat cat, courses 
WHERE cat.parent = courses.title 
GROUP BY cat.title 
+0

您的查询成功,部分请参阅下面的内容我需要什么... THX – Roko

+0

我回答了您问的问题,但您选择了正确的答案......另一个问题是? –

+0

对不起克里斯我的坏(对于回答的问题)......我没有解决这个问题呢......正如我所说,下面我试图解释更好的我的问题。 – Roko

0

我尝试张贴数字克里斯代码,和它的作品(部分),为更好地解释,后续的代码(请参阅编辑的一个下)“组确定类别和把内置项目“,但我需要获得更多的课程(div”courseblock“)到每个类别(div”pblock“),并且此代码只打印一个......(我认为它”打破循环“也许需要的“课程”数据结合到他们的“类别”)

在这个链接可以看到我的意思一个生动的例子:
http://liberartestudio.com/download/aaa.jpg
(类别块是那些白人,课程那些红色)
这里的链接页面:
http://lvdsys.liberartestudio.com/services_courses.php

<?php 
$query = $db->prepare(' 
SELECT courses_cat.title AS CatTitle, courses_cat.body AS CatBody, courses_cat.datapost AS CatData, courses.parent, courses.title AS CourseTitle, courses.shortbody AS CourseShortbody, courses.datapost AS CourseData 
FROM courses_cat, courses 
WHERE courses_cat.title = courses.parent 
GROUP BY parent 
ORDER BY CatData AND CourseData 
'); 
$query->execute(); 
$query->store_result(); 
$query->bind_result($CatTitle, $CatBody, $CatData, $parent, $CourseTitle, $CourseShortbody, $CourseData); 
while ($query->fetch()) 
echo " 
<div class='pblock'> 
<h2>$CatTitle</h2><pre>$CatBody</pre> 
<div id='courseblock'><a href='#'><span class='top'>$CourseTitle</span><span class='content'>$CourseShortbody</span></a> 
</div> 
</div> 
"; ?>