golfantastic Posted January 18, 2007 Share Posted January 18, 2007 I don't know if my question is confusing or not.. but i want to know how to make a website with pages where i can refer to the id... example... neowin.net/blog?id=9 = neowin.net/blog/mypage.html how do you do that with php? is there a tutorial on it? thanks in advance. Link to comment https://www.neowin.net/forum/topic/530798-how-to-make-php-subpages-with-id/ Share on other sites More sharing options...
0 smctainsh Posted January 18, 2007 Share Posted January 18, 2007 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 Link to comment https://www.neowin.net/forum/topic/530798-how-to-make-php-subpages-with-id/#findComment-588236446 Share on other sites More sharing options...
0 golfantastic Posted January 18, 2007 Author Share Posted January 18, 2007 thanks for the reply. where am i suppose to put that code? Link to comment https://www.neowin.net/forum/topic/530798-how-to-make-php-subpages-with-id/#findComment-588236547 Share on other sites More sharing options...
0 Code.Red Posted January 18, 2007 Share Posted January 18, 2007 You put it in an index.php page, which includes the basic site layout. Then, where the content of the page would normally be, put that code. Link to comment https://www.neowin.net/forum/topic/530798-how-to-make-php-subpages-with-id/#findComment-588236552 Share on other sites More sharing options...
0 golfantastic Posted January 18, 2007 Author Share Posted January 18, 2007 ?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> ??? Link to comment https://www.neowin.net/forum/topic/530798-how-to-make-php-subpages-with-id/#findComment-588236574 Share on other sites More sharing options...
0 CeruleanCowboy Posted January 18, 2007 Share Posted January 18, 2007 NYU_KID said: ?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> ??? 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. Link to comment https://www.neowin.net/forum/topic/530798-how-to-make-php-subpages-with-id/#findComment-588236672 Share on other sites More sharing options...
0 primexx Posted January 18, 2007 Share Posted January 18, 2007 This is how I'd do it: 1) index.php <?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'); ?> template.php <!--html here--><?php include './content/'.$path.'.php'; ?><!-- more hml --> where the include is the middle section aka content portion of your page. Link to comment https://www.neowin.net/forum/topic/530798-how-to-make-php-subpages-with-id/#findComment-588236757 Share on other sites More sharing options...
0 golfantastic Posted January 18, 2007 Author Share Posted January 18, 2007 NYU_KID said: ?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> ??? 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 ... ??? Link to comment https://www.neowin.net/forum/topic/530798-how-to-make-php-subpages-with-id/#findComment-588236926 Share on other sites More sharing options...
0 CeruleanCowboy Posted January 18, 2007 Share Posted January 18, 2007 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. Link to comment https://www.neowin.net/forum/topic/530798-how-to-make-php-subpages-with-id/#findComment-588236941 Share on other sites More sharing options...
0 golfantastic Posted January 18, 2007 Author Share Posted January 18, 2007 (edited) 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 January 18, 2007 by NYU_KID Link to comment https://www.neowin.net/forum/topic/530798-how-to-make-php-subpages-with-id/#findComment-588236946 Share on other sites More sharing options...
0 CeruleanCowboy Posted January 18, 2007 Share Posted January 18, 2007 here are the bare essentials what you should have in your blog.php file for it to retrieve a specific blog entry: <?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 */ ?> 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. Link to comment https://www.neowin.net/forum/topic/530798-how-to-make-php-subpages-with-id/#findComment-588236983 Share on other sites More sharing options...
0 golfantastic Posted January 18, 2007 Author Share Posted January 18, 2007 CeruleanCowboy said: here are the bare essentials what you should have in your blog.php file for it to retrieve a specific blog entry: <?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 */ ?> 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 :( Link to comment https://www.neowin.net/forum/topic/530798-how-to-make-php-subpages-with-id/#findComment-588237065 Share on other sites More sharing options...
0 CeruleanCowboy Posted January 18, 2007 Share Posted January 18, 2007 what parts of it don't you get? i'll see if i can't explain them. Link to comment https://www.neowin.net/forum/topic/530798-how-to-make-php-subpages-with-id/#findComment-588237131 Share on other sites More sharing options...
0 spinx_ Posted January 18, 2007 Share Posted January 18, 2007 <?php $ID = $_GET['id']; $Default = "default"; $Type = "php"; if(isset($ID)){ include $ID.".".$Type; } else { include $Default.".".$Type; } ?> simple way of doing this, can all so add another else to add a 404 error page Link to comment https://www.neowin.net/forum/topic/530798-how-to-make-php-subpages-with-id/#findComment-588237675 Share on other sites More sharing options...
0 golfantastic Posted January 18, 2007 Author Share Posted January 18, 2007 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.. <?php switch($_GET['id']) { case 1: include 'blog.php'; break; case 2: include 'blog2.php'; break; default: include 'index.php'; } ?> 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. Link to comment https://www.neowin.net/forum/topic/530798-how-to-make-php-subpages-with-id/#findComment-588239672 Share on other sites More sharing options...
0 CeruleanCowboy Posted January 19, 2007 Share Posted January 19, 2007 CeruleanCowboy said: here are the bare essentials what you should have in your blog.php file for it to retrieve a specific blog entry: <?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 */ ?> 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.. <?php switch($_GET['id']) { case 1: include 'blog.php'; break; case 2: include 'blog2.php'; break; default: include 'index.php'; } ?> 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: <?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 &. $_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 */ ?> for the function, you'd have something like this: function blogEntryFormat(title, message){ ?> <div id="title"><?php echo $title; ?></div> <div id="message"><?php echo $message; ?></div> <?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: <div id="mainContent"> <?php $page = $_GET['page']; switch($page){ case "portfolio": include("portfolio.php"); break; case "links": include("links.php"); break; default: include("home.php"); break; } ?> </div> 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. Link to comment https://www.neowin.net/forum/topic/530798-how-to-make-php-subpages-with-id/#findComment-588240170 Share on other sites More sharing options...
0 golfantastic Posted January 19, 2007 Author Share Posted January 19, 2007 Do I fill in the fields for mysql in the database?? Link to comment https://www.neowin.net/forum/topic/530798-how-to-make-php-subpages-with-id/#findComment-588240547 Share on other sites More sharing options...
0 CeruleanCowboy Posted January 19, 2007 Share Posted January 19, 2007 yes, you would, but you shouldn't have that many. by the way, let me ask now, what are you actually trying to do? Link to comment https://www.neowin.net/forum/topic/530798-how-to-make-php-subpages-with-id/#findComment-588240553 Share on other sites More sharing options...
0 golfantastic Posted January 19, 2007 Author Share Posted January 19, 2007 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. Link to comment https://www.neowin.net/forum/topic/530798-how-to-make-php-subpages-with-id/#findComment-588240617 Share on other sites More sharing options...
0 CeruleanCowboy Posted January 19, 2007 Share Posted January 19, 2007 here's what your code should be. <?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 > $first){ echo "<a href=\"blog.php?id=".$id-1."\">Back</a>< $last){ echo "<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); } ?> Link to comment https://www.neowin.net/forum/topic/530798-how-to-make-php-subpages-with-id/#findComment-588240685 Share on other sites More sharing options...
0 golfantastic Posted January 19, 2007 Author Share Posted January 19, 2007 (edited) ceruleancowboy, what is the difference between your code and the one here: http://www.devshed.com/c/a/PHP/Completing-...ogger-with-PHP/ ?? Edited January 19, 2007 by golfantastic Link to comment https://www.neowin.net/forum/topic/530798-how-to-make-php-subpages-with-id/#findComment-588242982 Share on other sites More sharing options...
0 CeruleanCowboy Posted January 19, 2007 Share Posted January 19, 2007 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. Link to comment https://www.neowin.net/forum/topic/530798-how-to-make-php-subpages-with-id/#findComment-588243002 Share on other sites More sharing options...
0 golfantastic Posted January 19, 2007 Author Share Posted January 19, 2007 I get an error applying the code you gave me into my .php ... "Parse error: syntax error, unexpected T_STRING in /home/www/private.com/blog.php" ??? Link to comment https://www.neowin.net/forum/topic/530798-how-to-make-php-subpages-with-id/#findComment-588243016 Share on other sites More sharing options...
0 CeruleanCowboy Posted January 20, 2007 Share Posted January 20, 2007 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? Link to comment https://www.neowin.net/forum/topic/530798-how-to-make-php-subpages-with-id/#findComment-588243260 Share on other sites More sharing options...
0 -Alex- Posted January 20, 2007 Share Posted January 20, 2007 As well as the column names you have used for your database. Link to comment https://www.neowin.net/forum/topic/530798-how-to-make-php-subpages-with-id/#findComment-588243292 Share on other sites More sharing options...
0 golfantastic Posted January 20, 2007 Author Share Posted January 20, 2007 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? <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <HEAD> <title>Blog</title> <link rel="stylesheet" type="text/css" href="style.css">t;!--[if IE 7]> <link rel="stylesheet" type="text/css" href="iestyle.css" media="screen" /> <![endif]--> </HEAD> <body id="home"> <div id="col1i"> <img src="/header56.jpg" alt="header"> </div> <div id="col2i"> <img src="/navigation7.jpg" alt="navigation"> <table bgcolor="#ffffcc" width=238px height=21px> <tbody> <tr> <td align=center> <a href="/contact.php">Contact</a>;a href="/blog.php">Blog</a>;a href="/">Home</a> </td> </tr> </tbody> </table> <br> <?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 > $first){ echo "<a href=\"blog.php?id=".$id-1."\">Back</a>< $last){ echo "<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']; } ?> <div id="blog"> <table bgcolor=#ffffcc width=610px> <tbody> <tr> <td> <p>dsa</p> <ul id="navigation"> <li class="left"><a href="/"> << Back</a></li> <li class="right"><a href="#">Archives</a></li> </ul> </td> </tr> </tbody> </table> </div> </body> </html> Link to comment https://www.neowin.net/forum/topic/530798-how-to-make-php-subpages-with-id/#findComment-588243703 Share on other sites More sharing options...
Question
golfantastic
I don't know if my question is confusing or not.. but i want to know how to make a website with pages where i can refer to the id...
example... neowin.net/blog?id=9 = neowin.net/blog/mypage.html
how do you do that with php? is there a tutorial on it?
thanks in advance.
Link to comment
https://www.neowin.net/forum/topic/530798-how-to-make-php-subpages-with-id/Share on other sites
26 answers to this question
Recommended Posts