Jump to content

Getting Variable From Url In Php & Mysql


Falanas

Recommended Posts

Forgive me, I am only but a beginner in PHP & Mysql. I am trying to do a simple website but unfortunately I can see myself in a big mess:

 

Getting 'id' from URL has been so hard for me and that's why I will appreciate if you could assist me. Here goes the code:

 

 

 

index.php

 

 

<?php

 

//The first category (KENYA SAFARIS AS DEFAULT VALUE) of table - categoties

 

$catsql = "SELECT * FROM categories WHERE categories.id = 1";

$catresult = mysql_query($catsql);

while($catrow = mysql_fetch_assoc($catresult)){

echo "<h2> " .$catrow['cat_name'] . "</h2>";

 

//list of available sites to be visited (OF - TABLE tourism sites)

$sitesql = "SELECT * FROM tourism_sites WHERE cat_id = " .$catrow['id'] . ";";

$siteresult = mysql_query($sitesql);

$sitenumrows = mysql_num_rows($siteresult);

 

if($sitenumrows==0){

echo "<h2 class = 'results'>No listed safari site</h2>";

}

else{

while($sitenumrows = mysql_fetch_assoc($siteresult)){

echo "<ul>";

echo "<li><a href='#.php?id =" . $sitenumrows['id'] . "'>" . $sitenumrows['hotel_name'] . "</a></li>";

echo "</ul>";

}

}

 

echo "</li> ";

}

 

?>

 

<li>

<?php

//The second category (UGANDA AS DEFAULT VALUE) of categories table

$cat2sql = "SELECT * FROM categories WHERE categories.id = 2";

$cat2result = mysql_query($cat2sql);

while($cat2row = mysql_fetch_assoc($cat2result)){

 

echo "<h2>" .$cat2row['cat_name'] . "</h2>";

 

//list sites in Uganda to be visited

$site2sql = "SELECT * FROM tourism_sites WHERE cat_id =" . $cat2row['id'] .";";

$site2result = mysql_query($site2sql);

$site2numrows = mysql_num_rows($site2result);

if($site2numrows==0){

echo "<h2 class = 'results'> No saved locations..! </h2>";

}

else{

while($site2numrows = mysql_fetch_assoc($site2result)){

echo "<ul>";

echo "<li><a href='#.php?id =" . $site2numrows['id'] . "'>" . $site2numrows['hotel_name'] . "</a></li>";

echo "</ul>";

}

}

 

echo "</li>";

}

 

?>

 

 

 

 

 

 

<?php

 

 

if(isset($_GET['id']) == TRUE) {

if(is_numeric($_GET['id']) == FALSE) {

header("Location: " . BASE_DIR);

}

$correct_id = $_GET['id'];

 

}

else {

header("Location: " . BASE_DIR);

}

?>

 

<!-- start page -->

<div id="page">

<!-- start content -->

 

<div id="content">

 

<div class="post">

 

 

<h2>Reservation</h2>

 

<?php

/*

*this query links to variable . $sitenumrows['id'] of index.php to display further information about

* $site2numrows['hotel_name']

*/

 

$placesql = "SELECT tourism_sites.*, towns.*, place.*, photos.* FROM tourism_sites, towns, place, photos

WHERE tourism_sites.cat_id = towns.id AND towns.id = place.cat_id AND place.id = photos.id AND photos.image_id = " . $correct_id;

$placeresult = mysql_query($placesql);

$placenumrow = mysql_num_rows($placeresult);

if($placenumrow == 0){

echo "<h2 class = 'results'>There was a problem querrying database</h2>";

}

else{

while ($placenumrow == mysql_fetch_assoc($placeresult)){

echo "<h2 class = 'title'>" . $placenumrow['town_name'] . "</p>";

}

}

 

?>

 

 

please help

Link to comment
Share on other sites

You never try to use $_GET['id'] as far as I can see.

 

 

Jessica I believe I have used it (it is saved in '$correct_id').

 

What worries me is that this code is unable to execuite:

 

 

[$placesql = "SELECT tourism_sites.*, towns.*, place.*, photos.* FROM tourism_sites, towns, place, photos

WHERE tourism_sites.cat_id = towns.id AND towns.id = place.cat_id AND place.id = photos.id AND photos.image_id = " . $correct_id;]

 

No any number e.g 1, 2, 3 etc is seen on the URL instead, it redirects me to BASE_DIR i.e header("Location: " . BASE_DIR);

 

Is it because the id sent from index.php to the url does not meet the below conditions?

 

<?php

 

if(isset($_GET['id']) == TRUE) {

if(is_numeric($_GET['id']) == FALSE) {

header("Location: " . BASE_DIR);

}

$correct_id = $_GET['id'];

 

}

else {

header("Location: " . BASE_DIR);

}

?>

 

I expected to see something like - details.php?id=1 or details.php?id=2 depending on the link clicked. What do you say? Thanks.

===========================================================================================================

 

 

 

<?php

 

if(isset($_GET['id']) == TRUE) {

if(is_numeric($_GET['id']) == FALSE) {

header("Location: " . BASE_DIR);

}

$correct_id = $_GET['id'];

 

}

else {

header("Location: " . BASE_DIR);

}

?>

<!-- start page -->

<div id="page">

<!-- start content -->

 

<div id="content">

 

<div class="post">

 

 

<h2>Reservation</h2>

 

<?php

/*

*this query links to variable . $sitenumrows['id'] of index.php to display further information about

* $site2numrows['hotel_name']

*/

 

$placesql = "SELECT tourism_sites.*, towns.*, place.*, photos.* FROM tourism_sites, towns, place, photos

WHERE tourism_sites.cat_id = towns.id AND towns.id = place.cat_id AND place.id = photos.id AND photos.image_id = " . $correct_id;

$placeresult = mysql_query($placesql);

$placenumrow = mysql_num_rows($placeresult);

if($placenumrow == 0){

echo "<h2 class = 'results'>There was a problem querrying database</h2>";

}

else{

while ($placenumrow == mysql_fetch_assoc($placeresult)){

echo "<h2 class = 'title'>" . $placenumrow['town_name'] . "</p>";

}

}

 

?>

Link to comment
Share on other sites

Okay so getting anything from the URL you should have right at the very top of your page (before <doctype>) you need:

 

$Url = $_GET["id"]; /*or whatever you getting from url*/

 

He does have a line for it.

$correct_id = $_GET['id'];

 

It doesn't have to come before the doctype, especially if there's other processing. You first need to actually check if it even exists, so I would put all the processing in one place. The only reason for it to be before the doctype is if you are going to redirect to another page based on that value or lack of value.

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.