У меня проблемы с выяснением, как внедрить sql в мой php-код для моей веб-страницы.К сожалению, это задание.
Если бы кто-нибудь мог помочь, это было бы здорово, потому что у меня был кто-то, кто собирался помочь мне сегодня, но они отменили в последнюю минуту, и я все еще застрял в этом.
В области «Мои основные предметы» на странице для каждого основного предмета (comp sci, eng, bus) должен быть активен щелчок, и при нажатии на него обновляется страница index.php и отображаются учащиеся в таблице, которые имеют этот майор.Я использую majorID в качестве внешнего ключа для определения основных направлений.У меня возникли проблемы, зная, как использовать php для этого.
Я думал об использовании этого кода с использованием цикла foreach, кроме случаев, когда я получал слишком много ошибок, одна из которых была неопределенным индексом и фатальным необработанным pdo.
<aside>
<!-- display a list of majors-->
<h2>Majors</h2>
<nav>
<ul>
<?php foreach ($majors as $major) : ?>
<li>
<a href="?majorID=<?php
echo $major['majorID']; ?>">
<?php echo $major['majorname']; ?>
</a>
</li>
<?php endforeach; ?>
</ul>
</nav>
</aside>
![My page right now.](https://i.stack.imgur.com/FcsOI.png)
Это мой код .sql
DROP DATABASE IF EXISTS richard_ricardo_student_db;
CREATE DATABASE richard_ricardo_student_db;
DROP USER 'richardricardo1'@'localhost';
CREATE USER 'richardricardo1'@'localhost' IDENTIFIED BY 'richardisgreat';
GRANT SELECT, INSERT, UPDATE, DELETE ON `richard\_ricardo\_student\_db`.* TO 'richardricardo1'@'localhost';
CREATE table major (
majorID int NOT NULL AUTO_INCREMENT,
majorname varchar(255),
PRIMARY KEY (majorID)
);
CREATE table student (
studentID int NOT NULL AUTO_INCREMENT,
majorID int,
firstname varchar(255),
lastname varchar(255),
gender varchar(10),
PRIMARY KEY (studentID),
FOREIGN KEY (majorID) REFERENCES major (majorID)
);
INSERT INTO major (majorID, majorname)
VALUES (1, "Computer Science"),(2, "Electrical Engineering"),(3, "Business");
INSERT INTO student (studentID, majorID, firstname, lastname, gender)
VALUES (1, 1, "Po", "Black", "M"),(2, 1, "Shifu", "Hoffman", "M"),(3, 1, "Tigress", "Jolie", "F"),(4, 1, "Jennifer", "Yuh", "F"),(5, 1, "Ox", "Storming", "M"),(6, 2, "Monkey", "Chan", "M"),(7, 1, "Viper", "Liu", "F"),(8, 2, "Mantis", "Rogen", "M"),(9, 3, "Crane", "Cross", "M"),(10, 3, "Oogway", "Kim", "M"),(11, 3, "Ping", "Hong", "M");
А это мой код index.php, который подключается к базе данных sql в phpmyadmin и к моему файлу database.php.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="main.css?v=1">
<title>richard ricardo kung fu school</title>
</head>
<body>
<header>
<h1>Richard Ricardo Kung Fu School - Students</h1>
</header>
<section>
<div id="MajorList">
<h2>Majors</h2>
<div id="MajorPadding">
<?php
include('richard_ricardo_database.php');
$stmt = $pdo->query('SELECT * FROM Major');
while ($row = $stmt->fetch())
{
echo $row['majorname']. "<br><br>";
}
?>
</div>
</div>
<div id="StudentList">
<h2>Student List</h2>
<table class="greyGridTable">
<thead>
<tr>
<th>Student ID</th>
<th>First Name</th>
<th>Last Name</th>
<th>Gender</th>
<th></th>
</tr>
<?php
$stmt = $pdo->query('SELECT * FROM Student');
while ($row = $stmt->fetch())
{
echo "<tr><td>".$row['studentID']."</td><td>".strtoupper($row['firstname'])."
</td><td>".strtoupper($row['lastname'])."</td><td>".$row['gender']."
</td><td><a href='richard_ricardo_delete_student.php?id=".$row['studentID']."'>
<button>Delete</button></a></td></tr>";
}
?>
</table>
<br>
<a href="richard_ricardo_add_student_form.php">Add Student</a>
<br>
<br>
<a href="richard_ricardo_add_major_form.php">List / Add Major</a>
<br>
</div>
</section>
<br>
<footer>© 2015 richard ricardo kung fu school</footer>
</body>
</html>
Извините, что это такая длинная страница, я также не уверен, как вставить изображения меньшего размера.Вот как это должно выглядеть, если бы я, например, щелкнул мышью на информатике.О, также файл database.php использует объект pdo.
![enter image description here](https://i.stack.imgur.com/8jCzR.jpg)