Build CRUD Application PHP & Mysql. Getting data from several tables

Home » Tutorials » PHP+MySQL » Build CRUD Application PHP & Mysql. Getting data from several tables
Today we’ll continue create our web application. We’ll select data from two tables.
In last lesson we selected all players from players tables. On players.php page we have got table with three columns. Two of them are situated in another tables (“teams” and “countries”). That’s why we need to modify our sql query with using INNER JOIN.

Code lesson (api.php)

<?php

function getAllPlayers($db) {
	$sql = "SELECT * FROM players
			LEFT JOIN teams ON players.team_id = teams.team_id;
	";
	$result = array();

	$stmt = $db->prepare($sql);

	$stmt->execute();

	while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
		$result[$row['player_id']] = $row;
	}

	return $result;
}

function getAllTeams($db) {
	$sql = "SELECT * FROM teams
			INNER JOIN countries ON teams.country_id = countries.country_id;
	";
	$result = array();

	$stmt = $db->prepare($sql);

	$stmt->execute();

	while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
		$result[$row['team_id']] = $row;
	}

	return $result;
}

Code lesson (players.php)

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Игроки</title>
	<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet">
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
	<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
</head>
<body>
	<header>
		<nav class="navbar navbar-default" role="navigation">
			<div class="container-fluid">
				<div class="navbar-header">
					<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
						<span class="sr-only">Toggle navigation</span>
						<span class="icon-bar"></span>
						<span class="icon-bar"></span>
						<span class="icon-bar"></span>
					</button>
					<a class="navbar-brand" href="#">Sport CRM</a>
				</div>
		
				<div class="collapse navbar-collapse navbar-ex1-collapse">
					<ul class="nav navbar-nav">
						<li><a href="index.php">Главная</a></li>
						<li><a href="players.php">Игроки</a></li>
						<li><a href="teams.php">Команды</a></li>
						<li><a href="countries.php">Страны</a></li>
					</ul>
				</div>
			</div>
		</nav>
	</header>

	<div id="content">
		<div class="container-fluid">
			<?php include 'db.php'; ?>
			<?php include 'api.php'; ?>
			<?php
				$players = getAllPlayers($db);
			?>
			<table class="table table-bordered">
				<tr>
					<th>Игрок</th>
					<th>Команда</th>
					<th>Страна</th>
				</tr>
				<?php foreach ($players as $player) { ?>
					<tr>
						<td><?php echo $player['player_name']; ?></td>
						<td><?php echo $player['team_name']; ?></td>
					</tr>
				<?php } ?>
			</table>
		</div>
	</div>

	<footer>
		
	</footer>
</body>
</html>

Code lesson (teams.php)

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Команды</title>
	<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet">
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
	<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
</head>
<body>
	<header>
		<nav class="navbar navbar-default" role="navigation">
			<div class="container-fluid">
				<div class="navbar-header">
					<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
						<span class="sr-only">Toggle navigation</span>
						<span class="icon-bar"></span>
						<span class="icon-bar"></span>
						<span class="icon-bar"></span>
					</button>
					<a class="navbar-brand" href="#">Sport CRM</a>
				</div>
		
				<div class="collapse navbar-collapse navbar-ex1-collapse">
					<ul class="nav navbar-nav">
						<li><a href="index.php">Главная</a></li>
						<li><a href="players.php">Игроки</a></li>
						<li><a href="teams.php">Команды</a></li>
						<li><a href="countries.php">Страны</a></li>
					</ul>
				</div>
			</div>
		</nav>
	</header>

	<div id="content">
		<div class="container-fluid">
			<?php include 'db.php'; ?>
			<?php include 'api.php'; ?>
			<?php
				$teams = getAllTeams($db);
			?>
			<table class="table table-bordered">
				<tr>
					<th>Команда</th>
					<th>Страна</th>
				</tr>
				<?php foreach ($teams as $team) { ?>
					<tr>
						<td><?php echo $team['team_name']; ?></td>
						<td><?php echo $team['country_name']; ?></td>
					</tr>
				<?php } ?>
			</table>
		</div>
	</div>

	<footer>
		
	</footer>
</body>
</html>

0 Comments

Submit a Comment

Your email address will not be published. Required fields are marked *


The reCAPTCHA verification period has expired. Please reload the page.

Pin It on Pinterest

Share This