我可以使用PHP创建一个MySQL数据库,并用我的数据填充它,然后将其弹出到我的网页上。但是,我希望用户能够从“选项”下拉菜单中单击“足球”中的某个位置,例如“四分卫”,然后该网页将仅显示团队中四分卫的球员。

我很确定我所需要的只是与SELECT * FROM行有关的东西

编辑-另外,即使我定义了我在网页上的代码,也显示了Unidentified Index-Position

相关代码信息在这里:

<form action="FinalProject.php" method="get">
    <select name="position" id="position" value="position">
        <option value="">Select a position:</option>
        <option value="1">Quarterback</option>
        <option value="2">Wide Receiver</option>
        <option value="3">Linebacker</option>
        <option value="4">Tight End</option>
    </select>
</form>

<?php
//                     --- CREATE THE DATABASE
$db_conn = mysqli_connect("localhost", "root", "");
if (!$db_conn)
    die("Unable to connect: " . mysqli_connect_error());

mysqli_query($db_conn, "CREATE DATABASE IF NOT EXISTS sportDatabase;");

// --- CREATE THE TABLE
mysqli_select_db($db_conn, "sportDatabase");
$cmd = "CREATE TABLE bearsRoster (
          number int(2) NOT NULL PRIMARY KEY,
          playerName varchar(20),
          position char(2),
          height varchar(5),
          weight int(3),
          age int(2),
          experience int(2),
          collegeName varchar(50)
          );";

mysqli_query($db_conn, $cmd);
$cmd = "LOAD DATA LOCAL INFILE 'bearsRoster.csv' INTO TABLE bearsRoster FIELDS TERMINATED BY ',';";
mysqli_query($db_conn, $cmd);
$selectedOption = $_GET["position"];
$cmd = "SELECT * FROM bearsRoster ";
//                    ORDER BY position WHERE".$selectedOption.";";
$records = mysqli_query($db_conn, $cmd);

echo("<table border = 'black' align:'center'>
        <tr>
        <th>Number</th>
        <th>Player Name</th>
        <th>Position</th>
        <th>Height</th>
        <th>Weight</th>
        <th>Age</th>
        <th>Experience</th>
        <th>College Name</th>
        </tr>" . PHP_EOL);

while ($row = mysqli_fetch_array($records)) {
    echo("<tr>
            <td id = 'yellow'>" . $row['number'] . "</td>
            <td id = 'red'>" . $row['playerName'] . "</td>
            <td id = 'red'>" . $row['position'] . "</td>
            <td id = 'blue'>" . $row['height'] . "</td>
            <td id = 'blue'>" . $row['weight'] . "</td>
            <td id = 'pink'>" . $row['age'] . "</td>
            <td id = 'pink'>" . $row['experience'] . "</td>
            <td id = 'pink'>" . $row['collegeName'] . "</td>
          </tr>" . PHP_EOL);
}
echo("</table>");
mysqli_close($db_conn);
?>

最佳答案

我对您的代码进行了一些编辑,这应该可以工作。

<form action="FinalProject.php" method="POST">
    <select name="position" id="position" value="position">
        <option value="">Select a position:</option>
        <option value="QB">Quarterback</option>
        <option value="WR">Wide Receiver</option>
        <option value="LB">Linebacker</option>
        <option value="TE">Tight End</option>
    </select>

    <input type="submit" name="submit" value="Click me!" />
</form>

<?php
$db_conn = mysqli_connect("localhost", "root", "");
if (!$db_conn)
    die("Unable to connect: " . mysqli_connect_error());

mysqli_query($db_conn, "CREATE DATABASE IF NOT EXISTS sportDatabase;");
mysqli_select_db($db_conn, "sportDatabase");

$cmd = "CREATE TABLE bearsRoster (number int(2) NOT NULL PRIMARY KEY, playerName varchar(20), position char(2), height varchar(5), weight int(3), age int(2), experience int(2), collegeName varchar(50));";
mysqli_query($db_conn, $cmd);

$cmd = "LOAD DATA LOCAL INFILE 'bearsRoster.csv' INTO TABLE bearsRoster FIELDS TERMINATED BY ',';";
mysqli_query($db_conn, $cmd);

$cmd = "SELECT * FROM bearsRoster";
if(isset($_POST['submit'])) {
    if($_POST['position'] == 'QB' || $_POST['position'] == 'WR' || $_POST['position'] == 'LB' || $_POST['position'] == 'TE')
        $selectedOption = $_POST['position'];
    else
        $selectedOption = null;

    if($selectedOption !== null)
        $cmd = "SELECT * FROM bearsRoster WHERE position = ".$selectedOption.";";
}

$records = mysqli_query($db_conn, $cmd);

echo("<table border = 'black' align:'center'><tr><th>Number</th><th>Player Name</th><th>Position</th><th>Height</th><th>Weight</th><th>Age</th><th>Experience</th><th>College Name</th></tr>" . PHP_EOL);

while($row = mysqli_fetch_array($records)){
    echo("<tr><td id = 'yellow'>" . $row['number'] . "</td><td id = 'red'>" . $row['playerName'] . "</td><td id = 'red'>" . $row['position'] . "</td><td id = 'blue'>" . $row['height'] . "</td><td id = 'blue'>". $row['weight'] . "</td><td id = 'pink'>". $row['age'] . "</td><td id = 'pink'>". $row['experience'] . "</td><td id = 'pink'>". $row['collegeName'] . "</td></tr>". PHP_EOL);
}

echo("</table>");
mysqli_close($db_conn);

关于javascript - 如何让用户选择一个玩家位置并让mySQL显示数据库中该位置的每个玩家?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43984726/

10-14 15:48
查看更多