• 0

How to make PHP subpages with ID?


Question

Recommended Posts

  • 0

You could try something like this:

<?php

switch($_GET['id'])
{
case 1:
include 'mypage.html';
break;
case 2:
include 'mysecondpage.html';
break;
default:
include 'home.html';
}

?>

Just add more cases to the switch to include more files and IDs, or you could use a database with the IDs in it and page references to include.

Smctainsh

  • 0

?php

switch($_GET['id'])
{
case 1:
include 'mypage.php';
break;
case 2:
include 'mysecondpage.php';
break;
default:
include 'home.php';
}

?>

OK.. so i put this in index.php..

for the links to work..

<a href="mypage.php?id=1">My page</a>

<a href="mysecondpage.php?id=2">Second Page</a>

???

  • 0
  NYU_KID said:
?php

switch($_GET['id'])
{
case 1:
include 'mypage.php';
break;
case 2:
include 'mysecondpage.php';
break;
default:
include 'home.php';
}

?&gt;

OK.. so i put this in index.php..

for the links to work..

<a href="mypage.php?id=1">My page</a>

<a href="mysecondpage.php?id=2">Second Page</a>

???

if you pasted that code in your index.php file, all of the links should be:

index.php?id=1 (to call mypage.php)

index.php?id=2 (to call mysecondpage.php)

etc.

  • 0

This is how I'd do it:

1) index.php

&lt;?php
$query = $_GET['p'];

$query = strtolower($query);
$space = array(' ','%20');
$path = str_replace($space,'_',$query);

if (!file_exists('./content/'.$path.'.php')) {$path = '404'; $title = 'Error 404';}		// Error 404

require_once('./source/template.php');
?&gt;

template.php

&lt;!--html here--&gt;&lt;?php include './content/'.$path.'.php'; ?&gt;&lt;!-- more hml --&gt;

where the include is the middle section aka content portion of your page.

  • 0
  NYU_KID said:
?php

switch($_GET['id'])
{
case 1:
include 'mypage.php';
break;
case 2:
include 'mysecondpage.php';
break;
default:
include 'home.php';
}

?&gt;

OK.. so i put this in index.php..

for the links to work..

<a href="mypage.php?id=1">My page</a>

<a href="mysecondpage.php?id=2">Second Page</a>

???

OK, I got everything to work.. but somehow.. when i click on mypage.php?id=1.. it doesn't replace the content from mypage.php ... ???

post-141808-1169088981_thumb.jpg

  • 0

you should be clicking on a link for index.php?id=1, not mypage.php?id=1

also, in the index.php file that you're using for this, there should be no content, only structural objects. all of the content is stored inside of the separate php files like mypage.php, mysecondpage.php, and home.php.

i assume that you just copied and pasted the code we gave you after some content in your existing index.php file. you can't do that.

  • 0

I actually wanted to make it for my blog pages.. without using wordpress..

ex. blog.php?id=1 (for january 17, 2007), blog.php?id=2 (for january 18, 2007)..

so i should leave blog.php empty.. with the php code and structural objects?

Edited by NYU_KID
  • 0

here are the bare essentials what you should have in your blog.php file for it to retrieve a specific blog entry:

&lt;?php
// Define the id you want to retrieve from the url
$id = $_GET['id'];

// Build the mysql query and corresponding array of retrieved information
$query = mysql_query("SELECT * FROM blogTable WHERE id='$id'");
$entry = mysql_fetch_row($query);

/* Here's where you would escape out of php and back into it
in order to format things for you */
?&gt;

one thing i STRONGLY recommend is to create a function that has all of the formatting information in it that will take the different parts of the mysql row as arguments. this way, you can use a loop to call the function several times, once per row, and have a list of blog entries. trust me, this will help a lot later on as you develop your script.

  • 0
  CeruleanCowboy said:
here are the bare essentials what you should have in your blog.php file for it to retrieve a specific blog entry:

&lt;?php
// Define the id you want to retrieve from the url
$id = $_GET['id'];

// Build the mysql query and corresponding array of retrieved information
$query = mysql_query("SELECT * FROM blogTable WHERE id='$id'");
$entry = mysql_fetch_row($query);

/* Here's where you would escape out of php and back into it
in order to format things for you */
?&gt;

one thing i STRONGLY recommend is to create a function that has all of the formatting information in it that will take the different parts of the mysql row as arguments. this way, you can use a loop to call the function several times, once per row, and have a list of blog entries. trust me, this will help a lot later on as you develop your script.

I would love to create a function that has all the formatting information in it.. but that is also complex.. for me, a beginner working with php language. I don't even get the bare essential code for my blog.php :(

  • 0
  CeruleanCowboy said:
what parts of it don't you get? i'll see if i can't explain them.

OK, that code you gave me, I put it into my blog.php file.. without editing any parts of the code? and how do i retrieve past entries using that code? How do i set up a function and loop it?

the other code..

&lt;?php

switch($_GET['id'])
{
case 1:
include 'blog.php';
break;
case 2:
include 'blog2.php';
break;
default:
include 'index.php';
}

?&gt;

this seems easier?

also.. can someone give me different examples of scroll bar types? except from the regular ones?

..and last..

is there a different between ?page=blog and blog.php?id=1 ??

THANKS AGAIN guys.

  • 0
  CeruleanCowboy said:
here are the bare essentials what you should have in your blog.php file for it to retrieve a specific blog entry:

&lt;?php
// Define the id you want to retrieve from the url
$id = $_GET['id'];

// Build the mysql query and corresponding array of retrieved information
$query = mysql_query("SELECT * FROM blogTable WHERE id='$id'");
$entry = mysql_fetch_row($query);

/* Here's where you would escape out of php and back into it
in order to format things for you */
?&gt;

one thing i STRONGLY recommend is to create a function that has all of the formatting information in it that will take the different parts of the mysql row as arguments. this way, you can use a loop to call the function several times, once per row, and have a list of blog entries. trust me, this will help a lot later on as you develop your script.

  golfantastic said:
OK, that code you gave me, I put it into my blog.php file.. without editing any parts of the code? and how do i retrieve past entries using that code? How do i set up a function and loop it?

the other code..

&lt;?php

switch($_GET['id'])
{
case 1:
include 'blog.php';
break;
case 2:
include 'blog2.php';
break;
default:
include 'index.php';
}

?&gt;

this seems easier?

also.. can someone give me different examples of scroll bar types? except from the regular ones?

..and last..

is there a different between ?page=blog and blog.php?id=1 ??

THANKS AGAIN guys.

first, i'll dissect this:

&lt;?php
/* $_GET is a superglobal associative array that retrieves values from the url. So, let's say that the url is as follows:
http://www.yoursite.com/blog.php?entry=1&date=23

$_GET would have the following values:
$_GET['entry'] == 1
$_GET['date'] == 23

It retrieves all values from the url after the question mark. Each variable and it's value are separated by an =, and each set is separated by an &amp;.

$_POST is the same kind of associative superglobal, only it doesn't retrieve values from the url, only server-side sent information, like from an html form.
*/

// Define the id you want to retrieve from the url
$id = $_GET['id'];

/*
mysql_query() is a function that will generate a mysql query to manipulate your database. You'll need to look up stuff on mysql and all of the commands and syntax because it's too numerous to fit into any single post.

mysql_fetch_row() is a function that returns an array starting at index 0 with each column. Let's say that you have a table with the following columns: name, phone, age; and one row containing the information John, 1234567, 24.

By using mysql_query() to create a query to find the information, and mysql_fetch_row() to assign that data to an array, you would get this.

$query = mysql_query("SELECT name, phone, age FROM users");
$data = mysql_fetch_row($query);

$data[0] == "John";
$data[1] == 1234567;
$data[2] == 24;
*/

// Build the mysql query and corresponding array of retrieved information
$query = mysql_query("SELECT * FROM blogTable WHERE id='$id'");
$entry = mysql_fetch_row($query);

/* Here's where you would escape out of php and back into it
in order to format things for you */
?&gt;

for the function, you'd have something like this:

function blogEntryFormat(title, message){
  ?&gt;

&lt;div id="title"&gt;&lt;?php echo $title; ?&gt;&lt;/div&gt;
&lt;div id="message"&gt;&lt;?php echo $message; ?&gt;&lt;/div&gt;

  &lt;?php
}

to loop through all entries in the table and output all of the messages with that function, you'd do this:

$query = mysql_query("SELECT title, message FROM blog");
while($data = mysql_fetch_row($query)){
   blogEntryFormat($data[0], $data[1]);
}

the while loop will continue to retrieve individual rows and perform the operations inside of the loop until there are no more rows left to analyze based on the query you entered.

if you're looking ONLY for a way to use one template file to generate other pages for your site, like if you have a page for your portfolio, one for home, and one for links, and all have the same design and html structure, you would use the switch command from the other page. you'd just take whatever content is on each page and put it into a corresponding file. it would look like this:

&lt;div id="mainContent"&gt;
&lt;?php
$page = $_GET['page'];
switch($page){
   case "portfolio": include("portfolio.php"); break;
   case "links": include("links.php"); break;
   default: include("home.php"); break;
}
?&gt;
&lt;/div&gt;

if someone went to the url http://www.yourpage.com/index.php?page=links then whatever is in the links.php page would be output. but if someone went to just http://www.yourpage.com/index.php, then home.php would be output.

  • 0
  CeruleanCowboy said:
yes, you would, but you shouldn't have that many.

by the way, let me ask now, what are you actually trying to do?

on my blog.php, i want to be able to have only my most recent 2 entries displayed on blog.php file..and then older entries on blog.php?id=1,2,3 so i can click 'BACK" or "NEXT" to my older or newer entries..

such.. click on BACK.. to blog.php?id=2 .. or NEXT to blog.php?id=1 ...

i dont really need the subpages on my index.php or any other pages... just focusing on blog.php

i'm reading http://www.php-mysql-tutorial.com/index.php for help as of now..and still a bit confused.

post-141808-1169181058_thumb.jpg

  • 0

here's what your code should be.

&lt;?php
if(isset($_GET['id'])){

  // Get and output the entry of the id in the url
  $id = $_GET['id'];
  $query = mysql_query("SELECT * FROM blog WHERE id = '$id'");
  $data = mysql_fetch_assoc($query);
  blogFormat($data['title'], $data['message'], whatever other columns you want to output);

  // Check for first and last entries
  $query = mysql_query("SELECT id FROM blog ORDER BY id DESC LIMIT 1");
  $data= mysql_fetch_row($query);
  $last = $data[0];
  $query = mysql_query("SELECT id FROM blog ORDER BY id ASC LIMIT 1");
  $data= mysql_fetch_row($query);
  $first = $data[0];

  // Output Back and Next if the entry the user is looking at is less than the latest id and greater than the first
  if($id &gt; $first){ echo "&lt;a href=\"blog.php?id=".$id-1."\">Back</a>&lt; $last){ echo "&lt;a href=\"blog.php?id=".$id+1."\">Next</a>

// Output the latest two entries if no entry is specified in the url
$query = mysql_query("SELECT * FROM blog ORDER BY id DESC LIMIT 2");
while($data = mysql_fetch_assoc($query)){
  blogFormat($data['title'], $data['message'], whatever other columns you want to output);
}
?&gt;

  • 0

mine's just a short script to retrieve a blog entry based on an id in the url or the 2 latest entries.

the link you just provided is for an entire class that will process all of the blog entries and do quite a bit more. i wouldn't touch it since you're new to php.

  • 0
  CeruleanCowboy said:
did you just copy and paste the code verbatim?

things like this "whatever other columns you want to output" shouldn't be in there.

do you think you could paste the entire code of your blog.php file in this thread?

&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"&gt;
&lt;HEAD&gt;
&lt;title&gt;Blog&lt;/title&gt;
&lt;link rel="stylesheet" type="text/css" href="style.css">t;!--[if IE 7]&gt;
&lt;link rel="stylesheet" type="text/css" href="iestyle.css" media="screen" /&gt;
&lt;![endif]--&gt;

&lt;/HEAD&gt;

&lt;body id="home"&gt; 
&lt;div id="col1i"&gt;
&lt;img src="/header56.jpg" alt="header"&gt;
&lt;/div&gt;

&lt;div id="col2i"&gt;
&lt;img src="/navigation7.jpg" alt="navigation"&gt;
&lt;table bgcolor="#ffffcc" width=238px height=21px&gt;
  &lt;tbody&gt;
	&lt;tr&gt;
			&lt;td align=center&gt;
&lt;a href="/contact.php">Contact</a>;a href="/blog.php">Blog</a>;a href="/"&gt;Home&lt;/a&gt;

&lt;/td&gt;
	&lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;br&gt;
&lt;?php
if(isset($_GET['id'])){

  $id = $_GET['id'];
  $query = mysql_query("SELECT * FROM blog WHERE id = '$id'");
  $data = mysql_fetch_assoc($query);
  blogFormat($data['title'], $data['message'];

  $query = mysql_query("SELECT id FROM blog ORDER BY id DESC LIMIT 1");
  $data= mysql_fetch_row($query);
  $last = $data[0];
  $query = mysql_query("SELECT id FROM blog ORDER BY id ASC LIMIT 1");
  $data= mysql_fetch_row($query);
  $first = $data[0];

  if($id &gt; $first){ echo "&lt;a href=\"blog.php?id=".$id-1."\">Back</a>&lt; $last){ echo "&lt;a href=\"blog.php?id=".$id+1."\">Next</a>

$query = mysql_query("SELECT * FROM blog ORDER BY id DESC LIMIT 2");
while($data = mysql_fetch_assoc($query)){
  blogFormat($data['title'], $data['message'];
}
?&gt;

&lt;div id="blog"&gt;
&lt;table bgcolor=#ffffcc width=610px&gt;
  &lt;tbody&gt;
	&lt;tr&gt;
		  &lt;td&gt;
&lt;p&gt;dsa&lt;/p&gt;
&lt;ul id="navigation"&gt;
&lt;li class="left"&gt;&lt;a href="/"&gt; &lt;&lt; Back&lt;/a&gt;&lt;/li&gt;
&lt;li class="right"&gt;&lt;a href="#"&gt;Archives&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
	&lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • PDF24 Creator 11.27.0 by Razvan Serea PDF24 PDF Creator installs a virtual printer driver that allows you to convert any printable document or image into PDF format. You can also import documents from your scanner, combine multiple documents into one and delete selected pages from existing PDF files. The program supports creation of secure, digitally signed documents, PDF quality settings, integrated preview, emailing, and more. You can either drag'n drop documents onto the GUI or convert them from any other program by using the virtual printer driver - simply select the PDF24 printer instead of your regular paper printer. Advantages of PDF24 PDF Creator: Once installed, create PDF files forever Free upgrades included Conversion is simple and possible from all current programs Freeware Create PDF files from almost any application Easy to use Multilingual Several features of PDF24 PDF Creator: Merge and split PDF Extract pages from a PDF Copy pages from one PDF to another PDF Integrated preview for easy PDF editing Secure a PDF (Prevent from unauthorised opening, printing, etc.) Set PDF information such as author and title The following tools are included in the new PDF Toolbox of PDF24 Creator 11: Merge PDF Compress PDF Edit PDF Convert files to pdf Convert PDF files to other formats PDF to Text PDF to HTML PDF to JPG PDF to PNG PDF to PDF, PDF/A-1, PDF/A-2, PDF/A-3 PDF to Word PDF to PowerPoint PDF to Excel Protect PDF Unlock PDF Split PDF Rotate PDF pages Delete PDF pages Extract PDF pages Sort PDF pages Create a PDF from images Convert a PDF to images Extract images from PDFs Create online application as PDF Optimize PDF for the Web Insert watermark into a PDF Insert page numbers into a PDF Overlay PDF files Compare PDF files Sign PDF files Annotate PDF files Blacken PDF files Crop PDF Flatten PDF Download: PDF24 Creator 11.27.0 | MSI Setup | ~400.0 MB (Freeware) View: PDF24 Creator Homepage | Release Notes | Screenshot Get alerted to all of our Software updates on Twitter at @NeowinSoftware
    • Driver Genius 25.0.0.122 by Razvan Serea Driver Genius is a professional driver management tool features both driver management and hardware diagnostics. Driver Genius provides such practical functions as driver backup, restoration, update and removal for computer users. If you often reinstall your operating system, you may not forget such painful experiences of searching all around for all kinds of drivers. If unfortunately you have lost your driver CD, the search will be more troublesome and time-consuming. Driver Genius can automatically find drivers for a device when the system can't find a driver for it. It can recognize the name and vendor's information of the device, and directly provide download URL for the required driver. Driver Genius also supports online updates for drivers of existing hardware devices. Driver Genius customers can obtain information for latest drivers by Driver Genius's LiveUpdate program, which can synchronize to the database on Driver Genius site. Features at a glance: Find the latest drivers for your computer. One click to update all drivers silently. Automatically install driver updates silently. Make your drivers are always up to date. New rollback driver design for safer driver update. Free to backup all drivers now! Package all drivers to an executable auto installer. One click to restore all drivers. Remove invalid or useless drivers/devices, improve system performance and stability. New system information tool. Detailed hardware inventory. Hardware temperature monitor. Protect your CPU, GPU and HDD. New system transfer assistant. Upgrade/degrade your windows system easily. New SSD Speeder. Improve your disk performance and reliability. New System booster provides over 90 optimization options that make your computer run faster and smoother. New System Cleanup can help you to clean up the temporary files and cache files or other junk files in system. Driver Genius 25.0.0.122 changelog: Optimize driver update detection. Optimize outdated driver detection. Download: Driver Genius 25.0.0.122 | 20.4 MB (Shareware) View: Driver Genius Home Page | Screenshot Get alerted to all of our Software updates on Twitter at @NeowinSoftware
    • Tailscale is a VPN. The cloudflared service is a reverse proxy into Cloudflares network so you can run anything through it without opening ports.
    • Clean Space 711 by Razvan Serea Clean Space is a system optimization, privacy, and cleaning tool. With this program, you can free up valuable hard disk space by removing unused files from your system, thereby allowing Windows OS to run faster and more efficiently. The program also cleans traces of your online activities, such as cookie files, and your internet history, even in third-party programs. Clean Space key features: Removes junk files (temporary files, logs, caches, cookies, etc.) Protects user privacy by deleting activity traces One-click cleanup functionality Warns about browser cloud sync risks Supports cleaning of Microsoft Store apps Enhanced cleaning for Chrome, Firefox, and other browsers Uses secure deletion methods (military-grade) Frequently updated with new features and app support Customizable cleaning zones and app selection Provides detailed cleaning reports Fast scanning and cleanup performance Compatible with Windows 7, 8/8.1, 10, and 11 Low system resource usage Priority support available in professional version Clean Space 711 changelog: Adding settings panel and new functions New Settings Section A new Settings button has been added to the main screen, giving you quick access to the app's configuration. While the current options are limited, we'll expand them based on users feedback. New function: Always Run as Administrator Now available in Settings, this feature lets you launch the app with administrative privileges by default, unlocking access to more cleanup zones on your PC. New function: Manage Ignore List By default, the app skips files which are "in-use" and unavailable for deletion. But you can disable this in Settings (not recommended). If left enabled, the ignore list resets every 24 hours, meaning previously locked files will be retried for deletion until successful deleted. New function: Startup Cache Toggle You can now disable the startup cache, which stores a list of supported zones from previous run, to speed up app our app. Bug fixes Fixed an issue where the "Update Later" button was incorrectly restricted to the Professional version - it's now available to all users. Download: Clean Space 711 | 280 KB (Free, paid upgrade available) Link: Clean Space Home Page | Screenshot Get alerted to all of our Software updates on Twitter at @NeowinSoftware
    • So, in other words, people who don't like the amount of telemetry included with Windows 11 can now stay with Windows 10 if they agree to copy all their data to Microsoft's cloud. You can't make this stuff up :-)
  • Recent Achievements

    • Week One Done
      DrRonSr earned a badge
      Week One Done
    • Week One Done
      Sharon dixon earned a badge
      Week One Done
    • Dedicated
      Parallax Abstraction earned a badge
      Dedicated
    • First Post
      956400 earned a badge
      First Post
    • Week One Done
      davidfegan earned a badge
      Week One Done
  • Popular Contributors

    1. 1
      +primortal
      604
    2. 2
      ATLien_0
      226
    3. 3
      Michael Scrip
      167
    4. 4
      +FloatingFatMan
      154
    5. 5
      Som
      136
  • Tell a friend

    Love Neowin? Tell a friend!