Drummin Posted May 5, 2012 Share Posted May 5, 2012 I don't see how you are doing php on a page with an html extension. I also don't see anywhere where you've identified the property you are viewing. I suppose if you only have one record in the `images` table then it could call up the expected results but again running php on an html page is not the norm and I'm surprised you are seeing anything. My suggestion still stands as the best answer. Quote Link to comment https://forums.phpfreaks.com/topic/262064-how-to-make-a-image-a-link-when-it-is-outputted-using-php/page/4/#findComment-1343368 Share on other sites More sharing options...
usman07 Posted May 5, 2012 Author Share Posted May 5, 2012 ok mate lets go with it? would you mind explaining step by step sort of thing? will be happy to paste whatever code you need. Quote Link to comment https://forums.phpfreaks.com/topic/262064-how-to-make-a-image-a-link-when-it-is-outputted-using-php/page/4/#findComment-1343370 Share on other sites More sharing options...
usman07 Posted May 5, 2012 Author Share Posted May 5, 2012 If this help this is my table Quote Link to comment https://forums.phpfreaks.com/topic/262064-how-to-make-a-image-a-link-when-it-is-outputted-using-php/page/4/#findComment-1343373 Share on other sites More sharing options...
Drummin Posted May 5, 2012 Share Posted May 5, 2012 On insert.php you'd do something like this. while($row = mysql_fetch_assoc($results)){ echo '<div class="container" style="float:left;">'; echo '<div class="imageholder" style="float:left;">'; echo "<a href=\"propertyinfo.php?id={$row['id']}\"><img class='image1' src=\"{$row['image_path']}\" alt=\"{$row['summary']}\"> </a> <br />"; echo '</div>'; echo '<div class="textholder" style="font-family:helvetica; font-size:14px; float:left; padding-top:10px;">'; echo "{$row['summary']}"; echo "<span style=\"color:#63be21;\"><br><br><b>{$row['bedrooms']} bedroom(s) {$row['bathrooms']} bathroom(s) {$row['receptions']} reception room(s)</b></span>"; if($row['parking'] != null){ echo "<span style=\"color:#63be21;\"><b> {$row['parking']} parking space(s)</b></span>"; } On propertyinfo.php you need to pick up this GET value and add it to your query. if (isset($_GET['id']) && is_numeric($_GET['id'])){ //Do your queries WHERE id='{$_GET['id']}' etc. Adjust for table field names e.g. property_id for images etc. Note: I have not downloaded current code so adjust as needed. Quote Link to comment https://forums.phpfreaks.com/topic/262064-how-to-make-a-image-a-link-when-it-is-outputted-using-php/page/4/#findComment-1343374 Share on other sites More sharing options...
Muddy_Funster Posted May 7, 2012 Share Posted May 7, 2012 OK usman, you should be able to delete the extra column you added to the database and go back to our original structure. changing the code on insert.php to the following: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Mumtaz Properties</title> <link rel="stylesheet" href="cutouts/style.css"/> </head> <body> <!--Main Div Tag--> <div id="wrapper"> <div id="header"> <div id="logo"><a href="index.html"><img src="cutouts/Homepage/logo.png" alt=""/></a></div> </div> <div id="navigation"> <a id="Home" href="index.php" title="home"><span>home</span></a> <a id="Sale" href="forsale.html" title="for sale"><span>for sale</span></a> <a id="Rent" href="forrent.html" title="for rent"><span>for rent</span></a> <a id="Contact" href="contact.html" title="contact us"><span>contact us</span></a> </div> <div id="main"> <div id="results"><img src="cutouts/Homepage/results.png"></img></div> <?php require_once 'mstr_ref.php'; function san($input){ if(get_magic_quotes_gpc()){ $input=stripcslashes($input); } $output = mysql_real_escape_string($input); return $output; } if(isset($_POST['submit'])){ $pVars = array('area'=>$_POST['areas'], 'propType'=>$_POST['prop_type'], 'saleType'=>$_POST['ptype'], 'minB'=>$_POST['min_bedrooms'], 'maxB'=>$_POST['max_bedrooms'], 'minP'=>$_POST['min_price'], 'maxP'=>$_POST['max_price']); foreach ($pVars as $k=>$v){ $v = san($v); } $sql = new makeQuery(); $sql->manAdd('location_id', $pVars['area']); if($pVars['propType'] != 'Any'){ $sql->manAdd('catagory_id', $pVars['propType']); } if ($pVars['maxB'] > 0){ $sql->manAdd('bedrooms', $pVars['maxB'], '<='); } if($pVars['minB'] > 0){ $sql->manAdd('bedrooms',$pVars['minB'],'>='); } if($pVars['saleType'] != 'Any'){ if($pVars['saleType'] == "forsale"){ $sql->manAdd('market_type', 'sale'); if($pVars['minP'] != 0){ $pVars['minP'] = $pVars['minP'] * 1000; } if($pVars['maxP'] != 0){ $pVars['maxP'] = $pVars['maxP'] * 1000; } } if($pVars['saleType'] == 'forrent'){ $sql->manAdd('market_type', 'rent'); } } $qry = $sql->sqlStart.$sql->stmt.'Group By property.id'; $results = mysql_query($qry) or die (mysql_error()."<br />|-|-|-|-|-|-|-|-|-|-|-|-<br />$qry"); if(mysql_num_rows($results) < 1){ die ("Sorry, No Results Match Your Search."); } while($row = mysql_fetch_assoc($results)){ echo '<div class="container" style="float:left;">'; echo '<div class="imageholder" style="float:left;">'; echo "<a href='detail.php?prop={$row['id']}'><img class='image1' src='{$row['image_path']}' alt='{$row['summary']}' /></a> <br />"; echo '</div>'; echo '<div class="textholder" style="font-family:helvetica; font-size:13px; float:left; padding-top:10px;">'; echo "Summary : {$row['summary']}"; echo "A {$row['bedrooms']} bedroom, {$row['bathrooms']} bathroom {$row['cat_name']} in {$row['area_name']}, With {$row['receptions']} reception room(s)<br>"; if($row['parking'] != null){ echo "This property has {$row['parking']} parking"; } if($row['pay_interval'] != null){ echo " This proerty is available for £{$row['asking_price']} per {$row['pay_interval']}"; } else{ echo " This property is on the market for £{$row['asking_price']},000"; } echo '</div>'; echo '<div style="clear:both"></div>'; } } else{ echo "There was a problem, please click<a href='index.php'> Here </a>to return to the main page and try again"; } ?> </div> </div> </body> </html> and then adding the following page to the same directory naming it "detail.php": <?php require_once 'mstr_ref.php'; if(isset($_GET['prop'])){ $propID = $_GET['prop']; $id = (int)$propID; $sql = <<<SQL_SL SELECT SELECT image_path, area_name, cat_name, bedrooms, bathrooms, receptions, parking, market_type, asking_price, summary, detail, pay_interval FROM property INNER JOIN catagorys ON property.catagory_id = catagorys.id INNER JOIN locations ON property.location_id = locations.id LEFT JOIN images ON property.id = images.property_id WHERE property.id = $id SQL_SL; $results = mysql_query($sql) or die (mysql_error()); $counter = 0; while ($row = mysql_fetch_assoc($results)){ if($counter == 0){ echo "{$row['area_name']}"; echo "{$row['cat_name']}"; echo "{$row['summary']}"; echo "{$row['asking_price']}"; echo "{$row['detail']}"; echo "{$row['parking']}"; echo "{$row['bedrooms']} bedrooms, "; echo "{$row['bathrooms']} bathrooms, "; echo "{$row['receptions']} reception rooms."; echo "<img src='{$row['image_path']}' alt='img{$counter}' />"; } else{ echo "<img src='{$row['image_path']}' alt='img{$counter}' />"; } } } else{ echo"No Property found. Please click <a href='index.php'>Here</a> to search again."; } ?> should get you your image linking to the detail per property. You really do not need any column for url, and you should have never have added the url column to the images table anyway, unless you were planning for every image to link to a different page. adding the column to the property table would have been the way to do it if it was a per property link that you wanted. but as we are already pulling the property ID out of the database we can just use that to requery for the details of that property by passing it in the url to the new details page. It's not tested so will probably be a little buggy, but you should be getting to the point now where you can fix the little issues on your own. Let us know how it goes. Quote Link to comment https://forums.phpfreaks.com/topic/262064-how-to-make-a-image-a-link-when-it-is-outputted-using-php/page/4/#findComment-1343658 Share on other sites More sharing options...
Muddy_Funster Posted May 7, 2012 Share Posted May 7, 2012 this is insert.php with the search fixed aswell: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Mumtaz Properties</title> <link rel="stylesheet" href="cutouts/style.css"/> </head> <body> <!--Main Div Tag--> <div id="wrapper"> <div id="header"> <div id="logo"><a href="index.html"><img src="cutouts/Homepage/logo.png" alt=""/></a></div> </div> <div id="navigation"> <a id="Home" href="index.php" title="home"><span>home</span></a> <a id="Sale" href="forsale.html" title="for sale"><span>for sale</span></a> <a id="Rent" href="forrent.html" title="for rent"><span>for rent</span></a> <a id="Contact" href="contact.html" title="contact us"><span>contact us</span></a> </div> <div id="main"> <div id="results"><img src="cutouts/Homepage/results.png"></img></div> <?php require_once 'mstr_ref.php'; function san($input){ if(get_magic_quotes_gpc()){ $input=stripcslashes($input); } $output = mysql_real_escape_string($input); return $output; } if(isset($_POST['submit'])){ if((isset($_POST['min_price1']) && $_POST['min_price1'] != 0) || (isset($_POST['max_price1']) && $_POST['max_price1'] != 0)){ $_POST['min_price'] = $_POST['min_price1']; $_POST['max_price'] = $_POST['max_price1']; } elseif((isset($_POST['min_price2']) && $_POST['min_price2'] != 0) || (isset($_POST['max_price2']) && $_POST['max_price2'] != 0)){ $_POST['min_price'] = $_POST['min_price2']; $_POST['max_price'] = $_POST['max_price2']; } elseif((isset($_POST['min_price3']) && $_POST['min_price3'] != 0) || (isset($_POST['max_price3']) && $_POST['max_price3'] != 0)){ $_POST['min_price'] = $_POST['min_price3']; $_POST['max_price'] = $_POST['max_price3']; } $pVars = array('area'=>$_POST['areas'], 'propType'=>$_POST['prop_type'], 'saleType'=>$_POST['ptype'], 'minB'=>$_POST['min_bedrooms'], 'maxB'=>$_POST['max_bedrooms'], 'minP'=>$_POST['min_price'], 'maxP'=>$_POST['max_price']); foreach ($pVars as $k=>$v){ $v = san($v); } $sql = new makeQuery(); $sql->manAdd('location_id', $pVars['area']); if($pVars['propType'] != 'Any'){ $sql->manAdd('catagory_id', $pVars['propType']); } if ($pVars['maxB'] > 0){ $sql->manAdd('bedrooms', $pVars['maxB'], '<='); } if($pVars['minB'] > 0){ $sql->manAdd('bedrooms',$pVars['minB'],'>='); } if($pVars['saleType'] != 'Any'){ if($pVars['saleType'] == "forsale"){ $sql->manAdd('market_type', 'sale'); if($pVars['minP'] != 0){ // $pVars['minP'] = $pVars['minP'] * 1000; } if($pVars['maxP'] != 0){ // $pVars['maxP'] = $pVars['maxP'] * 1000; } } if($pVars['saleType'] == 'forrent'){ $sql->manAdd('market_type', 'rent'); } } if ($pVars['maxP'] > 0){ $sql->manAdd('asking_price', $pVars['maxP'], '<='); } if($pVars['minP'] > 0){ $sql->manAdd('asking_price',$pVars['minP'],'>='); } $qry = $sql->sqlStart.$sql->stmt.'Group By property.id'; $results = mysql_query($qry) or die (mysql_error()."<br />|-|-|-|-|-|-|-|-|-|-|-|-<br />$qry"); if(mysql_num_rows($results) < 1){ die ("Sorry, No Results Match Your Search."); } while($row = mysql_fetch_assoc($results)){ echo '<div class="container" style="float:left;">'; echo '<div class="imageholder" style="float:left;">'; echo "<a href='detail.php?prop={$row['id']}'><img class='image1' src='{$row['image_path']}' alt='{$row['summary']}' /></a> <br />"; echo '</div>'; echo '<div class="textholder" style="font-family:helvetica; font-size:13px; float:left; padding-top:10px;">'; echo "Summary : {$row['summary']}"; echo "A {$row['bedrooms']} bedroom, {$row['bathrooms']} bathroom {$row['cat_name']} in {$row['area_name']}, With {$row['receptions']} reception room(s)<br>"; if($row['parking'] != null){ echo "This property has {$row['parking']} parking"; } if($row['pay_interval'] != null){ echo " This proerty is available for £{$row['asking_price']} per {$row['pay_interval']}"; } else{ echo " This property is on the market for £{$row['asking_price']},000"; } echo '</div>'; echo '<div style="clear:both"></div>'; } } else{ echo "There was a problem, please click<a href='index.php'> Here </a>to return to the main page and try again"; } ?> </div> </div> </body> </html> Quote Link to comment https://forums.phpfreaks.com/topic/262064-how-to-make-a-image-a-link-when-it-is-outputted-using-php/page/4/#findComment-1343676 Share on other sites More sharing options...
usman07 Posted May 7, 2012 Author Share Posted May 7, 2012 ?Thanks so much Muddy_Funster. I'v tried that at the moment i'm getting this error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT image_path, area_name, cat_name, bedrooms, bathrooms, recepti' at line 1 Quote Link to comment https://forums.phpfreaks.com/topic/262064-how-to-make-a-image-a-link-when-it-is-outputted-using-php/page/4/#findComment-1343678 Share on other sites More sharing options...
usman07 Posted May 7, 2012 Author Share Posted May 7, 2012 The above post is the error i'm receiving on the 'detail.php'. Thank you so much with the price range,just checked it and works. Thats absolutely amazing! Thanks so much! Quote Link to comment https://forums.phpfreaks.com/topic/262064-how-to-make-a-image-a-link-when-it-is-outputted-using-php/page/4/#findComment-1343683 Share on other sites More sharing options...
usman07 Posted May 7, 2012 Author Share Posted May 7, 2012 I dont understand the detail.php, because what i want is when users make a search using the form,and results come up of properties, I want them to be able to click the image of a property and that will directly take them to another page with more information of that property that they selected. (The pages of ALL properties are already in the same directory. and they are .html pages) Quote Link to comment https://forums.phpfreaks.com/topic/262064-how-to-make-a-image-a-link-when-it-is-outputted-using-php/page/4/#findComment-1343686 Share on other sites More sharing options...
Muddy_Funster Posted May 7, 2012 Share Posted May 7, 2012 the error with the SQL is because I wrote the work "SELECT" twice at the start of the SQL_SL block, delete one of these and it should be ok. Quote Link to comment https://forums.phpfreaks.com/topic/262064-how-to-make-a-image-a-link-when-it-is-outputted-using-php/page/4/#findComment-1343706 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.