Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 3表连接,并在其中添加内容_Php_Mysql_Sql - Fatal编程技术网

Php 3表连接,并在其中添加内容

Php 3表连接,并在其中添加内容,php,mysql,sql,Php,Mysql,Sql,这就是我在新桌子上工作的东西。我想让它显示ideaTitle,每个ideaTitle的所有反馈(上面有),然后是我们在下面的sql代码中得到的投票总数(布尔值1和0)。我只是在用正确的方式把它们结合起来。将其分解为两个单独的sql命令是否更好 $sql_select = "SELECT p.ideaTitle, f.feedback, f.contact FROM ideas p RIGHT JOIN feedback f ON f.ideaSlug = p.ideaSl

这就是我在新桌子上工作的东西。我想让它显示ideaTitle,每个ideaTitle的所有反馈(上面有),然后是我们在下面的sql代码中得到的投票总数(布尔值1和0)。我只是在用正确的方式把它们结合起来。将其分解为两个单独的sql命令是否更好

    $sql_select = "SELECT p.ideaTitle, f.feedback, f.contact
    FROM ideas p
    RIGHT JOIN feedback f ON f.ideaSlug = p.ideaSlug
    ORDER BY p.ideaDateTime, f.dateTime
     ";
我用来显示数据的当前代码

    SELECT "p.ideaTitle,
          SUM(CASE WHEN v.vote = '1' THEN 1 ELSE 0 END) AS yesCount,
          SUM(CASE WHEN v.vote = '0' THEN 1 ELSE 0 END) AS noCount
         FROM ideas p
    LEFT JOIN votes v ON v.ideaSlug = p.ideaSlug
     GROUP BY p.ideaSummary
     ORDER BY yesCount DESC
     LIMIT 20";
$result=mysql\u query($sql\u select,$link)或die(“插入失败:”.mysql\u error());
$x=0;
while($row=mysql\u fetch\u数组($result)){
如果($row['ideaTitle']!=$previousTitle){
?>   
对:
不:


我将把它作为两个独立的查询来完成。你可以在一个查询中完成,但是这样做没有真正的目的

如果您真的想在一个查询中执行此操作,它可能会如下所示:

                $result = mysql_query($sql_select,$link) or die("Insertion Failed:" . mysql_error());   
                $x=0;
                while ($row = mysql_fetch_array($result)) {
                    if ($row['ideaTitle'] != $previousTitle) {
                        ?> <h3> <?php echo stripslashes($row['ideaTitle']); ?> </h3>
                       <h4> Yes: <?php // echo $number of yes votes; ?> </h4>
                       <h4> No:  <?php // echo $number of no votes; ?></h4>
                    <?php } ?>
                    <blockquote>
                    <p><em> <?php echo stripslashes($row['feedback']); ?> </em> </p></blockquote>
                    <?php 
                    $previousTitle = $row['ideaTitle']; ?>
                <?php }

然而,我看不出这样做有什么好处,我也看到了一些缺点。

在第二个查询中,为什么要按p.Ideasummary而不是p.ideatitle分组?idea表的主键是什么?是
ideaSlug
?@Mark-是的@JNK可能是我的错误-他们总是决定使用2语句ute,但我不知道如何将两者联系起来-有什么想法吗?
SELECT p.ideaTitle, f.feedback, f.contact, p2.yesCount, p2.noCount
FROM ideas p
LEFT JOIN feedback f ON f.ideaSlug = p.ideaSlug
LEFT JOIN (
    SELECT
        p.ideaSlug,
        SUM(CASE WHEN v.vote = '1' THEN 1 ELSE 0 END) AS yesCount,
        SUM(CASE WHEN v.vote = '0' THEN 1 ELSE 0 END) AS noCount
    FROM ideas p
    LEFT JOIN votes v ON v.ideaSlug = p.ideaSlug
    GROUP BY p.ideaSlug
) p2
ON p.ideaSlug = p2.ideaSlug