【问题标题】:Drop down list not showing any items from mysqli query下拉列表不显示来自 mysqli 查询的任何项目
【发布时间】:2023-03-27 13:42:01
【问题描述】:

正如标题所说,当我以第二种形式 (attendanceOut.php) 使用 mysqli 查询创建下拉列表时,我没有收到任何项目。我已经从我的出席.php 中的前一个下拉框中提取了一些信息,据我所知,它可以正常工作。我确信这与从 INNER JOIN 中拉出这个事实有关,但我找不到我在语法上搞砸的地方。任何帮助将不胜感激。所以不用多说一些代码。

 <?php

    $course = $_GET["CourseName"];
    $startTime = $_GET["BeginTime"];
    $course = trim($course);
    $course = strip_tags($course);
    $startTime = trim($startTime);
    $startTime = strip_tags($startTime);
    ?>

    <html>
    <meta http-equiv="Content-Type" content="text/html"; charset=utf-8">
    <body>

    <?php

    $mydbconn = new mysqli("www.evilscriptmonkeys.com", "capstone", "capstone","attendance");

    if (mysqli_connect_errno())
    {
    printf("connection failed: %s\n", mysqli_connect_error());
    }

    if ($_GET['action'] == 'Create Form')
    {   
    //$result = mysqli_query($mydbconn, "SELECT * FROM student WHERE CourseName = ' " .$course."'");
    $c =$course;
    $s = $startTime;
    $sql = ("SELECT * FROM student WHERE CourseName = '$c' AND Time > '$s'");
    $result = $mydbconn->query($sql);
    printf ($course);
    printf ($startTime);
    echo '<table border="1">';

    $classFields = $result->fetch_fields();

    foreach ($classFields as $classData)
    {
        echo "<th> $classData->name </th>";
    }

    while ($row = $result->fetch_assoc())
    {
        echo "<tr>";
        foreach($row as $col=>$val)
        {
            echo "<td> $val </td>";
        }
        echo "</tr>";
    }

}
?>
<form method = "get" action="changeID.php">
Student Name: <select Name='UserName'>
<option value = "">---Select---</option>
<?php
if ($_GET['action'] == 'Edit Student ID')
{
    $c =$course;
    $result = mysqli_query($mydbconn, "SELECT s2.UserName 
                                       FROM student s1 
                                       INNER JOIN students s2 
                                       ON s1.UserName = s2.UserName 
                                       WHERE s1.CourseName = '$c'");
    while(($row = mysqli_fetch_assoc($result)))
    {
        echo "<option value=\" " . $row['s2.UserName'] . "\">". $row['s2.UserName'] . "</option>";
    }

}
?>
</select>
<input type="submit" name="action" value="Change" />
</body>
</html>

【问题讨论】:

  • $row['s2.UserName']$row['UserName']
  • 谢谢,这就是问题所在。
  • 我可能会建议编辑您的数据库连接详细信息(如果这些是合法的)

标签: php mysql drop-down-menu inner-join


【解决方案1】:

您可以使用别名,然后在数组中使用它进行访问:

<?php
if ($_GET['action'] == 'Edit Student ID')
{
    $c =$course;
    $result = mysqli_query($mydbconn, "SELECT s2.UserName AS UserName
                                       FROM student s1 
                                       INNER JOIN students s2 
                                       ON s1.UserName = s2.UserName 
                                       WHERE s1.CourseName = '$c'");
    while(($row = mysqli_fetch_assoc($result)))
    {
        echo "<option value=\" " . $row['UserName'] . "\">". $row['UserName'] . "</option>";
    }

}
?> 

希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多