Top
Email
Bottom
PHP 7.4 and Oracle 19c
 
Name:
Company:
Email:
Telephone:
Training type:
Delegates:


Additional Information
 

Download our latest
Android and iPhone apps ...
Click on whichever one of our Apps you are interested in

PHP 7.4 and Oracle 19c course at a glance

Pages
917No of slides in the Manual
Exercises
21Total No of Exercises
Sections
38No of main topics, see index below
Public
NoPublic course in the UK and Ireland
On-Site
YesWe can come to your venue
Level
11 - Beginners
2 - Intermediate
3 - Advanced
Days
5Week days but we can put on weekend courses
Duration:
Minimum skill level required:
On-Site course:
Public course:
Sections:
No of exercises:
No of pages in the manual:
Pre-Requisite course(s):
Suggested further course(s):
Price guide:
5 days
1 (1 - Beginner, 2 - Experienced 3 - Advanced)
Yes
No
38
21
917
None
Oracle Essential PLSQL 19c
Contact us for the latest pricing

PHP 7.4 and Oracle 19c Programming course
Exercise highlights

Creating HTML output using PHP
Creating Cookies
Connecting to an Oracle Database
Selecting and displaying records from an Oracle database
Inserting data into the Database via PHP

Index of PHP 7.4 and Oracle 19c Programming training course

PHP 7.4
 
 

Section
Section Name
Page

One
PHP Introduction
1

 
- PHP: Hypertext Preprocessor
2

 
- Some of its main uses
4

Two
PHP Structure
5

 
- Basic Structure of PHP
6

 
- PHP Version etc
15

 
- Use of Echo
17

 
- Concatenating Echo
19

 
- Use of Echo with Escape Characters
21

 
- Use of Echo with Calculations
27

 
- Echo versus Print
30

 
- Use of Echo with HTML
32

 
- Commenting code in PHP
34

Three
Defining PHP Variables
37

 
- Introduction
38

 
- Defining PHP Variables
39

 
- Naming PHP Variables
40

 
- Declaring PHP Variables
43

 
- Flexibility of Datatypes
45

 
- Casting Datatypes
46

 
- Using gettype() with PHP Variables
50

 
- Using var_dump() with PHP Variables
52

 
- Using settype() with PHP Variables
53

 
- Using unset() with PHP Variables
55

 
- Using Heredoc
56

 
- Using Newdoc
58

 
- Using Define for Constants in PHP
59

Four
Manipulating Variables in PHP
61

 
- Introduction
62

 
- Mathematics
63

 
- Incrementing Values
67

 
- Prefix and Postfix
69

 
- Concatenation
72

 
- Exercise One
76

Five
Using PHP built in String Functions
81

 
- Introduction
82

 
- Miscellaneous String Functions
84

 
- Changing Case of Strings
89

 
- Substringing Strings
90

 
- Searching Strings
92

 
- Trimming Strings
98

 
- Nesting Functions
99

Six
Using PHP built in Number Functions
100

 
- Introduction
101

 
- Number Rounding
102

 
- Exercise Two
106

Seven
Introduction to PHP Arrays
109

 
- Introduction
110

 
- Numeric Arrays
112

 
- Populating Numeric Arrays
113

 
- Populating Numeric Arrays with range()
116

 
- Populating Numeric Arrays with array_pad()
119

 
- Populating Associative Arrays
121

 
- Using count() or sizeof()
127

 
- Using var_dump()
128

 
- Using print_r()
130

 
- Manually traversing Arrays
131

 
- Converting Arrays
133

 
- Using implode() and explode()
134

 
- Using unset()
136

 
- Multi-Dimensional Arrays
137

 
- Using var_dump() on multi-dimension arrays
140

 
- Using count() on multi-dimension arrays
143

 
- Three dimensional arrays
144

 
- Accessing Three Dimensional Arrays
146

 
- Alternative declaration of Arrays
147

 
- Exercise Three
148

Eight
Using Array Functions
154

 
- Introduction
155

 
- Using array_sum() / array_product()
156

 
- Sorting Arrays
157

 
- assort() and arsort()
163

 
- ksort() and krsort()
164

 
- array_multisort()
165

 
- array_reverse()
169

 
- array_flip()
170

 
- array_fill() and array_fill_keys()
172

 
- array_combine()
176

 
- array_intersect()
177

 
- array_diff()
178

 
- array_merge()
179

 
- array_unique()
180

 
- Exercise Four
181

Nine
Conditional PHP Statements
185

 
- Conditional tests
186

 
- Comparison Operators
187

 
- If statement structure
189

 
- Grouping processes in an 'If' statement
191

 
- Alternative processing
193

 
- Multiple 'If' statements
194

 
- Testing different datatypes
198

 
- Testing Strings
200

 
- Testing Booleans
204

 
- Testing for nulls
206

 
- Alternative Colon syntax
207

 
- Multiple Condition tests (and)
209

 
- Multiple Condition tests (or)
210

 
- Multiple Condition tests (xor)
211

 
- Nested If Conditions
212

 
- Ternary Operator
213

 
- Using PHP built in Functions for testing
216

 
- Exercise Five
218

Ten
Using Switch in Condition Testing
221

 
- Introduction
222

 
- The Switch Syntax
223

 
- Using Break with Switch
225

 
- Using Default with Switch
227

 
- Using Switch with Colon Syntax
228

 
- Advanced Switch Testing
229

 
- Mixing If Conditions with Switch
232

 
- Exercise Six
234

Eleven
Looping through values in PHP
236

 
- Introduction
237

 
- Foreach processing of Arrays
238

 
- Foreach processing with Colon syntax
242

 
- Multidimensional Arrays with Foreach
243

 
- While Loops
245

 
- While Loops with Colon Syntax
247

 
- Using Break to exit Loops
248

 
- Do .. While Loops
249

 
- Do .. While and While Loops with Arrays
251

 
- For Loops
252

 
- For Loops with Colon Syntax
254

 
- For Loops with empty expressions
255

 
- For Loops with more than one variable
257

 
- For Loops with Arrays
258

 
- Advanced Breaking of Loops
260

 
- Using Continue with Loops
267

 
- Exercise Seven
270

Twelve
Using Dates within PHP
274

 
- Introduction
275

 
- Creating String of Dates
276

 
- Converting Strings to Dates using strtotime()
277

 
- Limitation of using strtotime()
284

 
- Using Format Masks with date()
285

 
- Comparing Dates
287

 
- Adding to Dates
288

 
- Using mktime()
289

 
- Using getdate()
290

 
- Other Date Functions
291

 
- Exercise Eight
292

Thirteen
Regular Expressions using PCRE
294

 
- Introduction
295

 
- Testing for 'Contains' within a String
297

 
- Starts or Ends using Line Anchors
298

 
- Starts and Ends using Line Anchors (or)
300

 
- Using the Dot (Any Character)
301

 
- Using {Intervals}
303

 
- Using Character Lists []
305

 
- Using Character Lists to exclude matches
308

 
- Using Escape Sequences
309

 
- Using the Question Mark (Optional)
311

 
- Using the Plus sign (Mandatory)
313

 
- Using the Star sign (Optional)
314

 
- Backreferencing
315

 
- POSIX
317

 
- Using preg_replace()
319

 
- Using preg_replace() with arrays
321

 
- Using preg_filter()
323

 
- Using preg_replace_callback()
324

 
- Using preg_match()
325

 
- Preg_match() with PREG_OFFSET_CAPTURE
326

 
- Using preg_match_all()
327

 
- Using preg_grep()
329

 
- Using preg_last_error()
331

 
- Using preg_quote()
332

 
- Using preg_split()
333

 
- Using preg_split() with arrays
335

 
- Exercise Nine
336

Fourteen
PHP Functions
339

 
- Introduction
340

 
- Rudimentary Functions
341

 
- Function Positioning
343

 
- Passing Parameters to Functions
344

 
- Passing Multiple Parameters to Functions
346

 
- Defaulting Parameters in Functions
347

 
- Returning Values
348

 
- Returning Values in an Array
350

 
- The scope of Variables
351

 
- Global Variables
353

 
- Passing Arguments by Reference
354

 
- Dynamic Function Calls
355

 
- Calling Functions from other Functions
358

 
- Calling PHP Functions in other files
359

 
- Structure of the PHP file
360

 
- Calling the PHP file
361

 
- Calling the PHP file using include()
362

 
- Passing Parameters to another PHP file
365

 
- Exercise Ten
366

Fifteen
PHP Cookies
369

 
- Introduction
370

 
- Creating Cookies in PHP with setcookie()
371

 
- Setting the expiry date for Cookies
373

 
- Setting the path for Cookies
375

 
- Setting the domain/security for Cookies
376

 
- Reading Cookies with $_COOKIE
377

 
- Using Arrays with Cookies
379

Sixteen
PHP Sessions
380

 
- Introduction
381

 
- Creating Sessions
382

 
- Testing Sessions
383

 
- Using Arrays with Sessions
384

 
- Deleting Sessions
385

Seventeen
PHP Form Processor
386

 
- Introduction
387

 
- Anatomy of a HTML form
389

 
- Reading input using $_POST/$_GET
392

 
- Reading input using $_POST
393

 
- Reading input using $_GET
394

 
- $_GET versus $_POST
395

 
- Using $_REQUEST
396

 
- Using $_SERVER
397

 
- Preventing Invalid HTML in Forms
401

 
- Emailing in PHP
402

 
- Emailing HTML in PHP
404

 
- Emailing with attachments in PHP
406

 
- Exercise Eleven
407

Eighteen
PHP Errors
410

 
- Introduction
411

 
- Typical Errors
412

 
- Suppressing Errors
414

 
- $php_errormsg
417

 
- Using die to end the processing
419

 
- Using exit to end the processing
420

 
- Using isset() $php_errormsg
421

 
- Alternative way to use $php_errormsg
422

 
- Using error_reporting()
423

 
- Using error_reporting() report levels
426

 
- Custom error handling
428

 
- Raising Errors using trigger_error()
432

 
- Using error_log
434

 
- Using a centralised error handler
437

Nineteen
Exceptions
439

 
- Introduction
440

 
- Exception Syntax
441

 
- The 'try'
442

 
- The 'throw'
443

 
- The 'catch'
444

 
- Standard Exceptions
445

 
- Developer Defined Exceptions
448

 
- Processing the Exceptions
449

 
- Exception Methods
450

 
- set_exception_handler()
452

 
- Re-throwing Exceptions
454

 
- Finally
455

 
- Exercise Twelve
457

Twenty
PHP File I/O
459

 
- Introduction
460

 
- Using fopen()
461

 
- Access Modes
462

 
- Using fgets()
464

 
- Using fgetc()
467

 
- Using file()
468

 
- Using file_get_contents()
469

 
- Using fopen() with URLs
471

 
- Using fputs() / fwrite()
472

 
- Using file_put_contents()
474

 
- Working with Comma Separated Files (CSV)
477

 
- Using fgetcsv()
479

 
- Using fputcsv()
481

 
- Working with Binary Files
483

 
- Checking the Size of Bytes written
486

 
- Operating System Functions
487

 
- Using exec()
489

Twenty One
Creating HTML with PHP
491

 
- Introduction
492

 
- Why use PHP
493

 
- HTML example
494

 
- PHP simulating the HTML example
496

 
- Using PHP to create dynamic HTML
500

 
- Using htmlspecialchars()
507

Twenty Two
PHP Object Orientated Programming
508

 
- Introduction
509

 
- Terminology
510

 
- Instances
511

 
- Extending Classes
513

 
- Using '$this'
515

 
- Private and Public Methods
517

 
- Creating new Classes
518

 
- Referencing via Variables
520

 
- Exercise Thirteen
521

Oracle 19c
 
 

Section
Section Name
Page

One
Introduction to Oracle
2
 
- What is SQL used for ?
3
 
- Why use Oracle with PHP ?
4
 
- Definition of a Database
5
 
- Using Oracle with PHP
6
Two
Oracle Database Objects
7
 
- Introduction
8
 
- Tables
9
 
- Views
10
 
- Materialized Views
11
 
- Indexes
12
 
- Sequences
13
 
- Packages, Functions and Procedures
14
 
- Schemas
15
Three
Connecting to Oracle via PHP
16
 
- Introduction
17
 
- Using oci_connect
18
Four
Querying from Oracle
19
 
- Introduction
20
 
- oci_parse and oci_execute
22
 
- oci_fetch_row
25
 
- oci_num_rows and oci_num_fields
26
 
- Detecting Oracle errors
30
 
- oci_error
34
 
- Detecting a Parse error
36
 
- Detecting an Execution error
38
 
- Oracle Metadata
40
 
- User_tables
43
 
- What columns are in a table
45
 
- Using OCI_DESCRIBE_ONLY
46
 
- User_tab_columns
51
 
- Exercise One
57
Five
Simple Oracle Queries
61
 
- Introduction
62
 
- Selecting more than one column
64
 
- Counting Records in an Oracle Table
65
 
- Displaying Literals in a Select statement
67
 
- Using Associative Arrays with oci_fetch
71
 
- Column Aliases
74
 
- Column Manipulation with SQL Functions
77
 
- Concatenating Columns in SQL
83
 
- Performing Calculations in SQL
84
 
- Ordering Data in SQL
85
 
- Ordering more than one Column
87
 
- Ordering with nulls first / nulls last
88
 
- Manipulating Dates in SQL
89
 
- Displaying Dates in SQL
90
 
- Using user_tab_columns with functions
91
 
- Exercise Two
93
Six
Limiting Data Selected with a Where Clause
101
 
- Limiting Data in SQL
102
 
- Structure of an SQL Where Clause
103
 
- Different types of SQL Where Clauses
104
 
- Handling Nulls in Where Clauses
112
 
- Case Restrictions in SQL Where Clauses
113
 
- Using Functions in Where Clauses
114
 
- Using PHP Variables in Where clauses
117
 
- Using PHP oci_bind_by_name in Where clauses
118
 
- Rownum in SQL Tables
120
 
- Using Rowid in SQL Tables
122
 
- Fetch first rows of a Table in Oracle 19c (Top-N)
124
 
- Using Percent with Fetch in Oracle 19c
125
 
- Using Offset with Fetch in Oracle 19c
126
 
- Using With Ties with Fetch in Oracle 19c
127
 
- Exercise Three
128
Seven
Oracle Datatypes
134
 
- Introduction
135
 
- Varchar2
136
 
- ORA-00910: specified length too long for its datatype
138
 
- Varchar2 and Char
139
 
- Number
140
 
- Date
141
 
- Float
142
 
- Long
143
 
- Large Objects
144
 
- Bfile
148
Eight
Aggregating Values
149
 
- Introduction
150
 
- Using Group By
151
 
- Using Having with Group By
154
 
- Using With Rollup to Total Grouping
156
Nine
Tree Walking Tables in SQL
157
 
- Introduction
158
 
- Syntax for Tree Walking in SQL
160
 
- Example of Tree Walking in SQL
162
 
- Advanced Ordering of Siblings in Tree Walks
163
 
- Sys_Connect_By_Path
165
 
- Exercise Four
167
Ten
Joining Tables in an SQL Statement
171
 
- Using Table Aliases in SQL
172
 
- Linking Tables in an SQL Statement
174
 
- Problems with Joining Tables in SQL
179
 
- Methods of Joining Tables in SQL
181
 
- Using Ansi SQL/86 to join Tables
182
 
- Ansi SQL/86 and Outer Joins
183
 
- Ansi SQL/99 Standards (Natural Joins)
186
 
- Ansi SQL/99 Standards (Cross Joins)
187
 
- Ansi SQL/99 Standards (Joins/Using)
188
 
- Ansi SQL/99 Standards (On)
189
 
- Ansi SQL/99 Standards (Multiple On)
190
 
- Ansi SQL/99 Standards (Left Outer Joins)
191
 
- Ansi SQL/99 Standards (Right Outer Joins)
192
 
- Ansi SQL/99 Standards (Full Outer Joins)
193
 
- Merging Tables in SQL
194
 
- Using Union to Merge Tables
195
 
- Using Union All to Merge Tables
196
 
- Using Intersect to Merge Tables
197
 
- Using Minus to Merge Tables
198
 
- Knowledge Check
199
 
- Using the Merge Syntax
204
 
- Exercise Five
206
Eleven
Advanced Queries
210
 
- Introduction
211
 
- Pivot
212
 
- Changing the Pivot Headings of X Axis
218
 
- Unpivot
224
 
- Unpivot and Null values
228
 
- First/Last_Value functions
229
 
- Lead and Lag Functions
234
 
- Window Specification
237
 
- Breakdown of Window Specification
238
 
- Window Specification – The Arguments
240
 
- Window Specification – The Order By
243
 
- Window Specification – The Windowing
245
 
- Window Specification – Rows between
246
 
- Window Specification – current row
247
 
- Window Specification – unbounded preceding
250
 
- Window Specification – bounded preceding
251
 
- Window Specification – between
253
 
- Window Specification – current row
247
 
- Difference between Range and Rows
255
 
- Ranking functions
256
 
- Using Ntile Function in SQL
265
 
- Using Listagg function
267
 
- Using Case in Select statements
271
 
- Using Searched Case Function
276
 
- Using Searched Case Function with Sub-queries
278
 
- Using Sample in SQL
279
 
- Using Width_Bucket
281
 
- Exercise Six
284
Twelve
Creating Database Objects
288
 
- Creating Tables
289
 
- Mandatory Columns in SQL Tables
291
 
- Creation Syntax for Tables
292
 
- Virtual Columns
294
 
- Creating Virtual Columns with new Table
295
 
- Specifying Virtual Column Datatype and Size
296
 
- Adding Virtual Columns to Existing Table
297
 
- Using Virtual Columns
298
 
- Using Virtual Columns with Functions
300
 
- Limitations of Virtual Columns (ORA-54012)
301
 
- Limitations of Virtual Columns (ORA-54013)
303
 
- Viewing Virtual Columns in user_tab_columns
304
 
- Invisible Columns in Oracle 19c
305
 
- Commenting on Tables in SQL
308
 
- Commenting on Columns in SQL
309
 
- Creating Indexes in SQL
310
 
- Index Creation
313
 
- Disabling Indexes
315
 
- Creating Views
316
 
- Creating Sequences
318
 
- Using Sequences
319
 
- Altering Sequences
321
 
- Using Default Value in SQL Tables
322
 
- Using Default Value in Oracle 19c
323
 
- Using Identity in Oracle 19c
324
 
- Renaming Objects in an Oracle Database
325
 
- Dropping Objects from an Oracle Database
328
 
- Granting Access to other Schemas
329
 
- Accessing other Schemas
332
 
- Creating Synonyms
333
 
- Exercise Seven
334
Thirteen
Altering and Populating Oracle Tables
340
 
- Some Rules when altering Tables
341
 
- Syntax for Altering Tables
342
 
- Rules when populating Tables in SQL
343
 
- Syntax for populating Tables
344
 
- Using Variables to Populate Tables
349
 
- General Comments
350
 
- Updating Data
351
 
- Deleting Data
353
 
- Handling Large Objects in SQL Plus
354
 
- Handling Bfiles in SQL Plus
356
Fourteen
Committing Records
357
 
- The difference between DDL and DML
358
 
- Committing and Rollback in PHP
361
 
- Loading XML file naming Columns
292
 
- Loading XML file using Set
293
Fifteen
Materialized Views
362
 
- Introduction
363
 
- Syntax for Creating Materialized Views
365
 
- Refreshing Materialized Views
367
 
- Building Materialized Views
373
 
- Miscellaneous
375
Sixteen
Miscellaneous
376
 
- Introduction
377
 
- Changing Passwords with oci_password_change
378
 
- Oracle Database Version (oci_server_version)
379
 
- Setting timeout with oci_set_call_timeout
380
 
- Exercise Eight
381

Sections of PHP 7.4 / Oracle 19c

PHP 7.4

1
PHP Introduction

2
PHP Structure

3
Defining PHP Variables

4
Manipulating Variables in PHP

5
Using PHP built in String Functions

6
Using PHP built in Number Functions

7
Introduction to PHP Arrays

8
Using Array Functions

9
Conditional PHP Statements

10
Using Switch in Condition Testing

11
Looping through values in PHP

12
Using Dates within PHP

13
Regular Expressions using PCRE

14
PHP Functions

15
PHP Cookies

16
PHP Sessions

17
PHP Form Processor

18
PHP Errors

19
Exceptions

20
PHP File I/O

21
Creating HTML with PHP

22
PHP Object Orientated Programming

Oracle 19c

1
Introduction to Oracle
2
Oracle Database Objects
3
Connecting to Oracle via PHP
4
Querying from Oracle
5
Simple Oracle Queries
6
Limiting Data Selected with a Where Clause
7
Oracle Datatypes
8
Aggregating Values
9
Tree Walking Tables in SQL
10
Joining Tables in an SQL Statement
11
Advanced Queries
12
Creating Database Objects
13
Altering and Populating Oracle Tables
14
Committing Records
15
Materialized Views
16
Miscellaneous


Synopsis for PHP 7.4 and Oracle 19c Programming training course

One of the main factors in influencing the smooth running of an IT Project is the happiness and contentment of the Programming staff, a quick way of inducing stress is to make the Developers use products they have no experience or training in. This is where Seer Computing steps in; we offer over 150 courses ranging from Java programming to PHP to MySQL. Developers can learn more in a five day training environment than they can do in three months of stressful research and trial and error.

This course is a combination of two distinct areas, the traditional Oracle Database and the modern web-page language PHP, together they can be used to produce some of the most informative and original websites, the information provided by Oracle the innovation from PHP (with a little help from HTML and CSS). Combine this with JavaScript training and you have Developers who can read from an Oracle Database and produce webpages, and take input from a web-page and insert it into an Oracle Database.

This is a five day course, the first three days concern itself with the PHP language and all it can do when rendering web-pages, including reading from files, decision making and looping around values and much much more, take a look at the index of contents. The second unequal half is using PHP to communicate with an Oracle 19c Database, this includes complex SQL selections to creating Oracle objects in the Database, all over two days, generally we start this course on a Monday, so this part takes place on Thursday and Friday.

Seer Computing prides itself on its flexibility, we can jig around the start times, for example we normally start at 9am, but if it suits your Delegates better we can start earlier and therefore finish earlier and the same applies to later finishes, with on-site training not only do we come to you saving travelling costs and time but you can choose the start date for the training to commence. We also don’t have a limit to the number of Delegates on a course, we can train any number from 1 upwards and each will have their own workstation for the duration of the course, one of ours not yours … we bring all equipment needed for the course, you supply the room, we supply the hardware. Plus all Delegates get our comprehensive manuals to use during the course and take it away afterwards.

Take a look through our website, we have over 150 courses to choose from, we can also supply Database consultancy and Project Management facilities, talk to us to find out what we can do in total for you.

We accept most forms of payment, cheque, BACS and credit card (with 4% surcharge). All of our work is vat-able so subject to 20%. All quotations are honoured for 6 months from date of sending. No hidden extras or added costs.

Contact our training advisers, they will help you decide on the course, when and where and how many Delegates, they will provide as many scenarios you need, all quotes are free and without obligation, we even guarantee the price for six months from the date of quotation.

Request for detailsClick for the contact form for the PHP 7.4 and Oracle 19c training course
Public Courses
Oracle Essential SQL 21c
Days
2
Pages
340
Exercises
8
Sections
15
Public
Yes
On-Site
Yes
Public Courses
Oracle Essential PLSQL 21c
Days
3
Pages
384
Exercises
13
Sections
25
Public
Yes
On-Site
Yes
Public Courses
Using SQL with Oracle SQL Developer 19.2
Days
4
Pages
884
Exercises
18
Sections
37
Public
Yes
On-Site
Yes
Public Courses
Essential JavaScript
Days
4
Pages
660
Exercises
16
Sections
31
Public
Yes
On-Site
Yes
Public Courses
Essential CSS 3
Days
4
Pages
800
Exercises
15
Sections
30
Public
Yes
On-Site
Yes
Public Courses
Essential SQLite 3
Days
3
Pages
550
Exercises
12
Sections
24
Public
Yes
On-Site
Yes
Public Courses
Essential MySQL 8
Days
4
Pages
533
Exercises
16
Sections
24
Public
Yes
On-Site
Yes
Public Courses
Essential Python 3
Days
5
Pages
955
Exercises
17
Sections
41
Public
Yes
On-Site
Yes
Public Courses
Oracle Application Express 20
Days
0
Pages
0
Exercises
0
Sections
0
Public
Yes
On-Site
Yes
Public Courses
PHP 8 and MySQL 8
Days
5
Pages
870
Exercises
23
Sections
38
Public
Yes
On-Site
Yes
Public Courses
Java 17 Programming with Eclipse 2021-12
Days
5
Pages
788
Exercises
23
Sections
44
Public
Yes
On-Site
Yes
Public Courses
Java 17 Swing with Eclipse 2021-12
Days
5
Pages
756
Exercises
19
Sections
35
Public
Yes
On-Site
Yes
Click on the course name to see full details, left and right to view other courses