我可以使用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/