kentopolis Posted March 5, 2007 Share Posted March 5, 2007 I am using a HTML search form to give me the following result. I can get everything to work, even get it to display images that are associated with particular search term, but can't figure out how to keep it from displaying that annoying little "There's not image here image" that explorer shows, the one with box and red "x". I know that an if statement would do the trick, but I can't do "if's" inside of the "echo" is it possible to accomplish this? How? Thank you so much, the expertise on this forum has been tremendously helpful! while ($row= mysql_fetch_array($result)) { $title = $row["ptype"]; $email = $row["email"]; $did = $row["did"]; /////////////////////////// $gender = $row["gender"]; $price = number_format($row["price"], 2,'.',','); $qty = $row["qty"]; $dob_month = $row["dob_month"]; $dob_day = $row["dob_day"]; $p_pound = $row["p_pound"]; $p_oz = $row["p_oz"]; $p_date = $row["p_date"]; $link = $row["link"]; $p_num = $row["p_num"]; $address = $row["address"]; $comment = $row["comment"]; $avail_month = $row["avail_month"]; $avail_day = $row["avail_day"]; ////////////////////////////// echo "<span class=\"style52\">- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - </span><p><span class=\"styledogsforsale\">$title for Sale - ID #$did</span><br> <a href=\"admin/uploads/$did.jpg\" target=\"_blank\"><img src=\"admin/imagesize.php?did=$did&h=100\" border=\"0\"></a> <a href=\"admin/uploads/a/$did.jpg\" target=\"_blank\"><img src=\"admin/imagesizea.php?did=$did&h=100\" border=\"0\"></a> <a href=\"admin/uploads/b/$did.jpg\" target=\"_blank\"><img src=\"admin/imagesizeb.php?did=$did&h=100\" border=\"0\"></a> <a href=\"admin/uploads/c/$did.jpg\" target=\"_blank\"><img src=\"admin/imagesizec.php?did=$did&h=100\" border=\"0\"></a><br>D.O.B. - $dob_month $dob_day<br>$qty $gender $title<br><span class=\"style40\">Price: $$price<br>Ad Expires $avail_month $avail_day<br>$Comment</span><p>Contact Information:</strong><br> <strong>Phone Number:</strong> $p_num <br><strong>Address:</strong> $address<br> <strong>Email:</strong> <a href=mailto:$email>$email</a><br><a href=\"$link\" target=\"_blank\">$link</a> <br> <p>"; $count++ ; } $currPage = (($s/$limit) + 1); Quote Link to comment https://forums.phpfreaks.com/topic/41277-solved-mysql-fetch-array-image-display-if-available-how-to/ Share on other sites More sharing options...
redarrow Posted March 5, 2007 Share Posted March 5, 2007 Can you say it all agin slowly please read your own post and your see what i mean, dont understand? Quote Link to comment https://forums.phpfreaks.com/topic/41277-solved-mysql-fetch-array-image-display-if-available-how-to/#findComment-199979 Share on other sites More sharing options...
paul2463 Posted March 5, 2007 Share Posted March 5, 2007 put the if statement outisde the echo statement if ( there is a picture available) { echo "<span class=\"style52\">- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - </span><p><span class=\"styledogsforsale\">$title for Sale - ID #$did</span><br> <a href=\"admin/uploads/$did.jpg\" target=\"_blank\"><img src=\"admin/imagesize.php?did=$did&h=100\" border=\"0\"></a> <a href=\"admin/uploads/a/$did.jpg\" target=\"_blank\"><img src=\"admin/imagesizea.php?did=$did&h=100\" border=\"0\"></a> <a href=\"admin/uploads/b/$did.jpg\" target=\"_blank\"><img src=\"admin/imagesizeb.php?did=$did&h=100\" border=\"0\"></a> <a href=\"admin/uploads/c/$did.jpg\" target=\"_blank\"><img src=\"admin/imagesizec.php?did=$did&h=100\" border=\"0\"></a><br>D.O.B. - $dob_month $dob_day<br>$qty $gender $title<br><span class=\"style40\">Price: $$price<br>Ad Expires $avail_month $avail_day<br>$Comment</span><p>Contact Information:</strong><br> <strong>Phone Number:</strong> $p_num <br><strong>Address:</strong> $address<br> <strong>Email:</strong> <a href=mailto:$email>$email</a><br><a href=\"$link\" target=\"_blank\">$link</a> <br> <p>"; } else { //use all the same link information but display a default.jpg } Quote Link to comment https://forums.phpfreaks.com/topic/41277-solved-mysql-fetch-array-image-display-if-available-how-to/#findComment-199980 Share on other sites More sharing options...
redarrow Posted March 5, 2007 Share Posted March 5, 2007 Do u mean somethink like this? <?php if($row['some_think']>0){ //echo somethink }else{ //somthink else } ?> Quote Link to comment https://forums.phpfreaks.com/topic/41277-solved-mysql-fetch-array-image-display-if-available-how-to/#findComment-199982 Share on other sites More sharing options...
kentopolis Posted March 5, 2007 Author Share Posted March 5, 2007 Tried the if statment redarrow and got the following error "Parse error: syntax error, unexpected T_IF in /home/pets/public_html/search_test.php on line 239". I searched for a solution, have been searching, found this (I am using a cross section of the code so you can see where I inserted it) <?"- - - - - </span><p><span class=\"styledogsforsale\">$title for Sale - ID #$did</span><br>".(admin/uploads/c/$did.jpg > "")?'<a href="admin/uploads/c/$did.jpg" target="_blank"><img src="admin/imagesizec.php?did=$did&h=100" border="0"></a>':'no picture to display'."<br>D.O.B. - $dob_month $dob_day<br>$qty $gender $title<br>"?> But it returns an error saying I'm dividing by "0". I appreciate all the ideas, cause I am stumped Here is all of my code: <?php // Get the search variable from URL $var = @$_GET['q'] ; $trimmed = trim($var); //trim whitespace from the stored variable // rows to return $limit=10; // check for an empty string and display a message. if ($trimmed == "") { echo "<p>Please enter a search...</p>"; exit; } // check for a search parameter if (!isset($var)) { echo "<p>We dont seem to have a search parameter!</p>"; exit; } //connect to your database ** EDIT REQUIRED HERE ** mysql_connect("localhost","pets_puppylister","fiveft12"); //(host, username, password) //specify database ** EDIT REQUIRED HERE ** mysql_select_db("pets_puppylist") or die("Unable to select database"); //select which database we're using // Build SQL Query $query = "select * from dogs where ptype like \"%$trimmed%\" AND pshow = 'y' order by did desc"; // EDIT HERE and specify your table and field names for the SQL query $numresults=mysql_query($query); $numrows=mysql_num_rows($numresults); // If we have no results, offer a google search as an alternative if ($numrows == 0) { echo "<h4>Results</h4>"; echo "<p>Sorry, your search: "" . $trimmed . "" returned zero results</p>"; } // next determine if s has been passed to script, if not use 0 if (empty($s)) { $s=0; } // get results $query .= " limit $s,$limit"; $result = mysql_query($query) or die("Couldn't execute query"); // display what the person searched for echo "<p>You searched for: "" . $var . ""</p>"; // begin to show results set echo ""; $count = 1 + $s ; // now you can display the results returned while ($row= mysql_fetch_array($result)) { $title = $row["ptype"]; $email = $row["email"]; $did = $row["did"]; /////////////////////////// $gender = $row["gender"]; $price = number_format($row["price"], 2,'.',','); $qty = $row["qty"]; $dob_month = $row["dob_month"]; $dob_day = $row["dob_day"]; $p_pound = $row["p_pound"]; $p_oz = $row["p_oz"]; $p_date = $row["p_date"]; $link = $row["link"]; $p_num = $row["p_num"]; $address = $row["address"]; $comment = $row["comment"]; $avail_month = $row["avail_month"]; $avail_day = $row["avail_day"]; ////////////////////////////// echo "<span class=\"style52\">- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - </span><p><span class=\"styledogsforsale\">$title for Sale - ID #$did</span><br>".(admin/uploads/c/$did.jpg > "")?'<a href="admin/uploads/c/$did.jpg" target="_blank"><img src="admin/imagesizec.php?did=$did&h=100" border="0"></a>':'no picture to display'."<br>D.O.B. - $dob_month $dob_day<br>$qty $gender $title<br><span class=\"style40\">Price: $$price<br>Ad Expires $avail_month $avail_day<br>$Comment</span><p>Contact Information:</strong><br> <strong>Phone Number:</strong> $p_num <br><strong>Address:</strong> $address<br> <strong>Email:</strong> <a href=mailto:$email>$email</a><br><a href=\"$link\" target=\"_blank\">$link</a> <br> <p>"; $count++ ; } $currPage = (($s/$limit) + 1); //break before paging echo "<br />"; // next we need to do the links to other results if ($s>=1) { // bypass PREV link if s is 0 $prevs=($s-$limit); print " <a href=\"$PHP_SELF?s=$prevs&q=$var\"><< Prev 10</a>  "; } // calculate number of pages needing links $pages=intval($numrows/$limit); // $pages now contains int of pages needed unless there is a remainder from division if ($numrows%$limit) { // has remainder so add one page $pages++; } // check to see if last page if (!((($s+$limit)/$limit)==$pages) && $pages!=1) { // not last page so give NEXT link $news=$s+$limit; echo " <a href=\"$PHP_SELF?s=$news&q=$var\">Next 10 >></a>"; } $a = $s + ($limit) ; if ($a > $numrows) { $a = $numrows ; } $b = $s + 1 ; echo "<p><span class=\"style52\">- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - </span><p>Showing results $b to $a of $numrows</p>"; ?> Quote Link to comment https://forums.phpfreaks.com/topic/41277-solved-mysql-fetch-array-image-display-if-available-how-to/#findComment-200015 Share on other sites More sharing options...
kentopolis Posted March 5, 2007 Author Share Posted March 5, 2007 Does that snippet work? here it is seperate from the other code: .(admin/uploads/c/$did.jpg > "")?'<a href="admin/uploads/c/$did.jpg" target="_blank"><img src="admin/imagesizec.php?did=$did&h=100" border="0"></a>':'no picture to display'. is there a way to make it work? Quote Link to comment https://forums.phpfreaks.com/topic/41277-solved-mysql-fetch-array-image-display-if-available-how-to/#findComment-200024 Share on other sites More sharing options...
boo_lolly Posted March 5, 2007 Share Posted March 5, 2007 the way you would do this depends on how your database is structured. i assume that the images you want to be displayed were at one point or another uploaded from a user. maybe this user has an account? either way, upon upload, you should insert into your mysql table the filename. when you use mysql_fetch_array, check to see if there is an image in that column on the row that is being fetched, if there is anything in the field, then write the path to the images, and then use $row['filename'] to use at the end of the image location so it displays the correct image. Quote Link to comment https://forums.phpfreaks.com/topic/41277-solved-mysql-fetch-array-image-display-if-available-how-to/#findComment-200027 Share on other sites More sharing options...
kentopolis Posted March 5, 2007 Author Share Posted March 5, 2007 You are correct about the images being uploaded, I am not currently storing them in the database. Hmmm.... I will look into that idea... Quote Link to comment https://forums.phpfreaks.com/topic/41277-solved-mysql-fetch-array-image-display-if-available-how-to/#findComment-200039 Share on other sites More sharing options...
boo_lolly Posted March 5, 2007 Share Posted March 5, 2007 You are correct about the images being uploaded, I am not currently storing them in the database. Hmmm.... I will look into that idea... all you need to do is store the name of the file into a field in the database. so you have something like this: <?php $path = "/directory/path/to/images/"; $sql = "SELECT gender, price, qty, filename FROM your_table"; $query = mysql_query($sql); while($row = mysql_fetch_array($query)){ echo "Gender: ". $row['gender'] ."<br />\n"; echo "Price: ". $row['price'] ."<br />\n"; echo "Quantity: ". $row['qty'] ."<br />\n"; echo "Image: "; if(!$row['filename']){ echo "No image available<br />\n"; }else{ echo "<a href=". $path . $row['filename'] ."\">". $row['filename'] ."</a><br />\n"; } } ?> understand? Quote Link to comment https://forums.phpfreaks.com/topic/41277-solved-mysql-fetch-array-image-display-if-available-how-to/#findComment-200049 Share on other sites More sharing options...
kentopolis Posted March 5, 2007 Author Share Posted March 5, 2007 Thank you for all your help, I got this to work: if(file_exists('admin/uploads/'.$did.'.jpg')){ echo "<a href=\"admin/uploads/$did.jpg\" target=\"_blank\"><img src=\"admin/imagesize.php?did=$did&h=100\" border=\"0\"></a>"; }else{ echo ""; }; Quote Link to comment https://forums.phpfreaks.com/topic/41277-solved-mysql-fetch-array-image-display-if-available-how-to/#findComment-200057 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.