1 php page, different contents based on an identifier - php

I want to make a PHP page that will changing it's content based on some sort of an ID.
The idea is: the index page will have 4 squares, the content of those 4 squares will be the top 4 records in the database, they obviously have their own IDs in the DB.
What I want to happen is when I click on one of the squares it will pass the ID to another PHP page that will get all the details about it in the page.
To be more clear:
Lets say it is a cars website, the 4 squares would be an image of top 4 cars in the database with the IDs 1,2,3 and 4 respectively, when I click on the car's image (lets say 1) I will be directed to a PHP page called CarInfo.php
what i want to happen here is for the ID of the square to be passed to this page (maybe page will appear something like carInfo.php?id=1) and the page will load all the information from the database where the ID will match the recieved ID (in this case the record with ID = 1).
The problem is I don't even know how to start doing it... How can I pass the ID? How can the other page receive it? And can I use a variable to pass it to so I can use it in the query carteria? If so how?
Note: there will be 1 PHP page that displays the information ONLY (aside from index), all content will be dynamic.

very easy. exactly as you have said. you will use address with parameter, like
carInfo.php?id=1
and on carinfo page you can use php get variable http://php.net/manual/en/reserved.variables.get.php
$_GET["id"]
it will give you selected id, and you can then use is in database

In the first page you have to do something like this for each car:
Click Here
Click Here
Click Here
Click Here
Then, in show.php you need to write a code like this to recive information form the provided ID if the database you're using is MySQL:
<?php
$db = mysqli_connect('localhost','USERNAME', 'PASSWORD','DATABASE');
$result = mysqli_query($db, "SELECT * FROM YOUR-TABLE WHERE id = '{$_GET["id"]}'");
while($row = mysqli_fetch_assoc($result)){
echo "Color : {$row['color']}";
// ...
}
?>

Related

How to get search key when someone edit the result after search

In my project there is list of some records. User can search the records by project name. After search user can edit particular record. After edit when user click on Update button right now it is redirecting to list page but the search result gone and all records are displaying.
After Update i want to display the searched records only not all. How to get search key back ? I dont want to use session for that if any other better way.
I am using codeigniter.
For example:
There is a list of 10 records. User search the records by "ABC". Result come which has "ABC" project like 5 records come. Then user edit one record and update it. After update I wan to display that 5 records with search key "ABC" only. Right now it is displaying 10( ALL) records because i am redirecting on list page without search key. I have no idea how to do it. :(
What i would do personally is something like this on my list Page i would have a form which would be submitted to search function through GET method. This way i would have all my search Params in the URL and my URL would be something like this :
exampledomain.com/users?name=steve&age=23
Now for the edit page i would generate a link with a special parameter say : lastpage whose value would be some encoded form of the current search params. So when the user would go to the edit page the URL would be somthing like this:
exampledomain.com/users/edit/34?lastpage=erasc1235234safvdadsrgdfgbvcdfgrt435
when the edit functunality is completed. I would pick this lastpage Param form $_GET['lastpage'] ( or in CI you can use $this->input->get('lastpage')) to get the encoded value of lastpage and decode that to get all the previous URL search Params. and redirect the user to the serach function again with the search params attached to the URL.
I solved the same problem i had with dividing the view to two types
1) the normal view which shows all records and
2) the other view which shows all recently searched records for the last searched key.
To achieve this u need to store the searched records' ids and place from which the records have been taken to be stored in a temporary DB Table like TableforSearch and store the search key like 'ABC' in session.
On search of the Key 'ABC' find the ids of the records which matches the Key and save it to Table TableforSearch along with the Search Key and UserId.
Then use the Session to get the Key and search the table with the Key in Session to fetch the row that has All the Ids of the Searched Key.
For Error Handling see if the Ids present in Table have not been deleted for that Record.
And finally on Showing of searched items Show the second Page , for the other show normal first page
In order to get the keyword that has been type. You have three options
Save keyword as GET variable
Save keyword as hidden input
Save keyword as SESSION variable
Save keyword as COOKIEvariable
Since that you don't to choose the option 3 and 4. Your only option is to create a GET variable.Just add domain.com/controller/function?keyword=ABCand get that on controller as rldecode($_GET['keyword']); or create hidden input where you can save you value and fetch that value.
One way around is that, when user searches anything in list page (I hope your list page and search page are the same) than every time on new search, store the search keywords in localStorage and when user updates the record than redirect to list page along with your search keywords from localStorage. (This is suggested only if your list page and search page are the same. i.e. you handle the search with some parameters passed to list page.)
save your search criteria in a session variable $_SESSION['mysearch'] = 'ABC' and use it when redirecting header("Location: /mysearch.php?criteria=" . urlencode($_SESSION['mysearch'])).
Then in your "mysearch.php" you would ureldecode($_GET['criteria']), run the search again and present the results.

Get the Item id when creating dynamic pages on wordpress

I've been searching for several days now trying to find how to retrieve the item id of a select item from a mySQL database on a wordpress website.
I have a database of several hundreds of recipes. They are all displayed in a list on a certain page. I then want to be able to click on one of the recipes in the link and be sent to a unique recipe.php page.
The list of all recipes is on main-page.php. On this page, I have created the following:
echo '<td class="recipe"><a href=recipe?id='.$id.'><div class="recipe-container"><img src="'.$img.'" id="recipe-image"/>';
echo '<div class=recipe_name>'.$nam.'</a></div>';
As you can see, clicking on a recipe with the id of 4 would send you to www.example.com/recipe?id=4.
My question is, how do I tell the code to recognize that we are on the page for recipe #4, so that I can display its unique details? In particular, what do I write in recipe.php so that I can display the unique content for the selected recipe?
create an onload() event on the recipe.php, then check for $_SERVER['QUERY_STRING'] to retrieve id value and retrieve data from database based on the value
Found the awnser. All I had to do was:
$id = $_GET['id']
Had no idea it would be that easy.

Database management php mysql

I started learning Php scripting today only,i want to create an auction website for my college. I have a bid table having the following columns:
Userid
Itemid
Bidamount
When a user logs in ,and goes to "Items.php" page and when he will click on the bid option on an item (each item has an itemid)he will be redirected to "bid.php" page.
My doubt is: I will get the useid by $_SESSION['userid'], will i similarly also get the
itemid automatically by the $_SESSION['itemid'], if not how do i pass the itemid to the bid.php page.
another way is to to use an href tag to pass a variable to your bid.php and fetch it using get.
i.e
Bid now!
in your bid.php
$id = $_GET['id'];
you would create a from and use POST or GET information that is passed by the form. you would not get this from session
here's a tutorial: http://www.tizag.com/phpT/postget.php

Navigate Throught MySQL Result

I have searched everywhere but could not get anything. The scenario is that when I run a select statement from MySQL/PHP, I want to use Next & Previous buttons to navigate backwards and forward through the results.
Does anyone know how I can accomplish this?
Here's how I run the query: select everything from members where hair = black;
This returns 8 results, and I have a page like so details.php?id=3 which takes id and display the details.
I want to be able to keep clicking the next button and move to another id from the result.
How do I accomplish this?
Thank you for your assistance.
If you mean to display 1 product details per page with Next buttons, then
1) Get the total rows from table
2) Find total number of pages like
$totalPages = $totalRows; //since 1 record per page
3) Loop thru $totalPages value to generate next links
4) Get the id of product from page url $_GET
5) Query sql using te product id obtained frm GET
Well thats the basics, hope your get it
Assuming you have all ids in the $allIds var, try something like this:
<?php
$id = (int) $_GET['id'];
$key = array_search($id, $allIds);
$nextId = $allIds[$key+1];
?>
Well, you have 2 different scopes here to address, first, when you query you are in PHP/Server side mode. PHP gets some data, processes it, shows some of it to the knowledge i have of your problem and then sends it to the browser.
Next, you have the client scope, where the client has the HTML rendered to his screen and has the possibility to click NEXT and PREVIOUS. When he does that, he issues a request to the server to get the NEXT or PREVIOUS record based on the current one.
You have 2 scenarios to work this problem out:
1) Load the whole data into memory and scan it to find your current position, see if there is a NEXT and PREVIOUS element and respond to the request of the user. If the user asked for the NEXT, easy, just move one more record. If the user asked for PREVIOUS item, then when scanning using a WHILE or FOR/FOREACH, always keep in memory the "lastitem" you saw, you can use this "lastitem" as your PREVIOUS item.
2) In the event you have many (i mean like more than 1000) items, you need to use a little subquery magic and work this out using SQL.
select everything from members where hair = black AND id = XYZ ORDER BY id LIMIT 2;
This will return you the CURRENT AND NEXT elements. Then call the same query again but this time, order it DESC so that your 2 items are the CURRENT AND PREVIOUS.
select everything from members where hair = black AND id = XYZ ORDER BY id DESC LIMIT 2;
Note that you can order this the way you want, the goal is to get a static result, something that always gets out the same way so that you can reverse it and get the items around the selected one.
I hope this helps you

php search results

I've seen alot of tutorials on search with php and mysql, but im having trouble with generating a link with the search result. For example say i have an item called "item1" in my db and the user searhes for item , item1 should be returned as a link so the user can click the link to get more information about that product. Does anyone have any scripts , or snippets of code for how to acheive this?Thanks
You probably need to create an item page say item.php that accepts an id which will then search teh database for that item and display the item information.
Your search results will then have to display the name of the item in a link that also includes the id of the item.
<?php echo $itemname"?>
This would of course be in a loop that goes through the list of items one at a time.
When the user clicks the link it will take them to item.php and send id as a parameter.
that's a simply example with no check and no control by datatype or query results. just start from it and do what you need...
<?php
//your db connection
//col1 is where the id is saved
//col2 is the url
$qry="SELECT col1, col2 FROM table WHERE col1='".$_GET['var']."'";
$result=mysql_fetch_array(mysql_query($sql));
echo 'LINK';
?>
edit:
if you want a direct redirect do this instead of echoing
header('Location: '.$result['col2']);

Categories