这是一个非常具体的问题,但我已经坚持了一段时间。我正在创建一个应用程序,用户可以通过单击星号图标来登录并喜欢某些课程。我希望它像在许多社交网站上一样工作,如果您单击星号,它将填充它以表明它已被收藏。它将保存课程ID和会话可以将电子邮件保存到收藏夹表中,但是我无法获得被推荐显示为实心星标的课程。问题位是if(($_SESSION["Email"] == $row3["Email"]) && ($row["ID"] == $row3["ID"])){,依此类推。

<?php session_start();
    include "connection.php";
    $sql="SELECT * FROM course";
    $result= mysqli_query($con, $sql);
    $sql2 = "SELECT * FROM course, university WHERE course.UNI_ID = university.UNI_ID";
    $result2 = mysqli_query($con, $sql2);
    $row2=mysqli_fetch_assoc($result2);
    $sql3 = "SELECT * FROM favourite";
    $result3 = mysqli_query($con, $sql3);
    $row3 = mysqli_fetch_assoc($result3);

    while($row=mysqli_fetch_assoc($result)) {
      echo "<table border='2px' width='100%'><tr><td><b>".$row2["Name"]."</b></td><td><img src= 'images/".$row2["Logo"]."' width='25px'></td></tr><tr><td><b><a href=course.php?ID=".$row["ID"].">".$row["Course_name"]."</b></td><td>".$row["Course_length"]."</td></tr><tr><td width='80%'><a href=course.php?ID=".$row["ID"].">UCAS Requirements: ".$row["UCAS"]."+ ".$row["Subject_requirement"]."<br>Student Rating: <img src=images/".$row["Student_rating"]." width='80px'></td>";

        if(isset($_SESSION["Email"])) {
            if($_SESSION["Admin"] == "1") {
                echo "<td width='20%'><input type=\"button\" value=\"Delete\" onClick=\"window.location.href='deletecourse.php?=ID".$row["ID"]."'\"><br><br><input type=\"button\" value=\"Edit\" onClick=\"window.location.href='editcourseform.php?ID=".$row["ID"]."'\"></td></tr></table>";
            }
            if($_SESSION["Admin"] != "1") {
                if(($_SESSION["Email"] == $row3["Email"]) && ($row["ID"] == $row3["ID"])) {
                    echo "<td width='20%'><a href=unfavourite.php?ID=".$row["ID"]."><img src=images/favouritefilledin.fw.png width='45px'></td></tr></table>";
                }
                else {
                    echo "<td width='20%'><a href=favourite.php?ID=".$row["ID"]."><img src=images/favourite.fw.png width='45px'></td></tr></table>";
                }
            }
        }
        else {
            echo "<td width='20%'><a href=log_in.php><img src=images/favourite.fw.png width='45px'></td></tr></table>";
        }
    }
?>

最佳答案

您没有遍历喜欢的结果,需要检查所有结果


您需要首先为该电子邮件创建一系列“收藏夹”课程,因此在您的MySQL查询中也要检查该电子邮件
然后,而不是

($row["ID"] == $row3["ID"])


采用

in_array($row["ID"],$favouriteCourses)

关于php - 用户收藏夹项未填充PHP star,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36104174/

10-11 01:42