Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

PHP Build a Basic PHP Website (2018) Listing and Sorting Inventory Items Displaying All Items

This tutorial is a nightmare. Can ANYONE see what is wrong with my catalog.php

Here is my catalog.php...I've checked and checked and it seems identical to the trainer's.

<?php include("inc/data.php");

$pageTitle = "Full Catalogue"; $section = null;

if (isset($_GET["cat"])){ if ($_GET["cat"] == "books"){ $pageTitle = "Books"; $section = "books"; } elseif ($_GET["cat"] == "movies") { $pageTitle = "Movies"; $section = "movies"; } elseif ($_GET["cat"] == "music") { $pageTitle = "Music"; $section = "music"; } }

include("inc/header.php"); ?>

<div class ="section catalog page">

<div class = "wrapper"> <h1><?php echo $pageTitle; ?></h1>

<ul class="items">
  <?php  
  foreach($catalog as $item) {
      echo "<li><a href='#'><img src= '"
          .$item["img"] . "' alt='"
          .$item["title"] . "' />"
          . "<p>View Details</p>"
          . "</a></li>";
  }

  ?>

</ul>

</div>

</div>

<?php include("inc/footer.php"); ?>

10 Answers

Steven Parker
Steven Parker
240,995 Points

:point_right: Two things stand out:

  • $GET instead of $_GET (in 2 places)
  • "elseif" instead of "else if" (also in 2 places)

:information_source: Instructions for formatting code can be found in the Markdown Cheatsheet below. :arrow_heading_down:

Steven

Thank you for your suggestions but my code in fact has $_GET in all places. For some mysterious reason after I pasted it in it does ideed show in two places as $GET - I don't know why! Also, I am pretty sure that 'elseif' and 'else if' are synonymous.

Let me just paste my code again here below;

<?php include("inc/data.php");

$pageTitle = "Full Catalogue"; $section = null;

if (isset($_GET["cat"])){ if ($_GET["cat"] == "books"){ $pageTitle = "Books"; $section = "books"; } elseif ($_GET["cat"] == "movies") { $pageTitle = "Movies"; $section = "movies"; } elseif ($_GET["cat"] == "music") { $pageTitle = "Music"; $section = "music"; } }

include("inc/header.php"); ?>

<div class ="section catalog page">

<div class = "wrapper"> <h1><?php echo $pageTitle; ?></h1>

<ul class="items">
  <?php  
  foreach ($catalog as $item) {
      echo "<li><a href='#'><img src= '"
          . $item["img"] . "' alt='"
          . $item["title"] . "' />"
          . "<p>View Details</p>"
          . "</a></li>";
  }

  ?>

</ul>

</div>

</div>

<?php include("inc/footer.php"); ?>

Steven

I just checked and it's just done it again! Must be some bug on Treehouse - I don't know. Believe me, all of them are $_GET - unless if changes this one!

I've TRIED to contact Treehouse Support but all they seem to do is thank me for reaching out. I don't think they even know what's gone wrong here. I don't know if other people have the problem that if you actually email them direct from your email client they never seem to respond - only if you mail them from the web.

Hello

This is a reply to Alex Watts. Thanks so much for the response but that code did not work either and caused the same error report. And I notice it's very different from Ann Hooligan's code. This suggests there may be a serious fault in the video. I STILL have had no reply from Treehouse apart from thanking me for reaching out.

To confirm, I am pasting the code you sent me below:

<ul class="items"> <?php foreach($catalog as $item) { echo "<li><a href='#'><img src='" . $item["img"] . "' alt='" . $item["img"] . "'>" . $item . "</a></li>"; } ?> </ul>

I followed along with this video and didn't run into any problems.

Can you tell us what is happening when you view your site? Are there any errors appearing?

Instead of the images appearing, I think only one appeared and then there was a lot of error messages.

The point is that I am SURE that my code is identical to the trainer's in every way. Can you see anything at all wrong in my code?

Hi Malcom

I'm a PHP newbie too so not sure if I can help, but I just wanted to let you know that I copied and pasted your code in its entirety from your first post, and then again from your second post, into my catalog.php page and it works fine on my site. Could the error be in your data.php file (or one of the other include files)?

Maybe if you post the error messages you're getting that might help someone to help you also.

Caroline

Thank you, Caroline. I will check.

I had the same error ( only some images displaying ). Check your data.php file and make sure that the content matches the data from the teachers data.txt file. In my case I had the following old code: $catalog[201] = "Forrest Gump"; $catalog[301] = "Beethoven"; $catalog[102] = "Clean Code";

Removing the old code made it work.