Page 1 of 1

Displaying Images, and SessionStart();

Posted: Tue Oct 27, 2009 6:38 am
by jcausby
Okay. First up, I'm new. Both to this forum, and to PHP/MySQL. Well, relatively new, anyways. Yaaay.

I have two questions. For both, I've looked around, and can't seem to find anything that explains it in clear terms.

1: I have a MySQL database with a list of products. These products have associated images (of which the links are stored in the database). How do I use these links to display the image when a user enters a search term?

The current PHP Search code is the following:

Code: Select all

<?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 viable search parameter...</p>";
return("No search parameters entered");
}
// 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","root","rootadmin"); //(host, username, password)
//specify database ** EDIT REQUIRED HERE **
mysql_select_db("jlcbazaarceramics") or die("Unable to select database"); //select which database we're using
// Build SQL Query
$query = "select productName,productDesc,productPrice,productImage from products where productName like \"%$trimmed%\"
order by productName"; // 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><br />";
echo "<p>Sorry, your search: "" . $trimmed . "" returned zero results</p>";
// google
echo "<p><a href=\"http://www.google.com/search?q="
. $trimmed . "\" target=\"_blank\" title=\"Look up
" . $trimmed . " on Google\">Click here</a> to try the
search on google</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 "Results<br />";
$count = 1 + $s ;
// now you can display the results returned 
while ($row= mysql_fetch_array($result)) { 
echo ("<table border=\"1px\" width=\"100%\">");
echo ("<tr><td rowspan=4>");
$img = $row["productImage"];
echo ("<img src=\"$img\" />");
echo ("</td></tr>");
$title = $row["productName"]; 
echo "$count.)&nbsp;<b>Name:</b> $title<br />" ; 
echo ("</td></tr>");
echo ("<tr><td>");
$descript = $row["productDesc"]; 
echo "&nbsp;<b>Description:</b> $descript<br />" ; 
echo ("</td></tr>");
echo ("<tr><td>");
$price = $row["productPrice"]; 
echo "&nbsp;<b>Price:</b> $price<br />" ; 
echo ("</td></tr>");
echo ("</table><br />");
$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 "&nbsp;<a href=\"$PHP_SELF?s=$prevs&q=$var\"><<
Prev 10</a>&nbsp&nbsp;";
}
// 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 "&nbsp;<a href=\"$PHP_SELF?s=$news&q=$var\">Next 10 >></a>";
}
$a = $s + ($limit) ;
if ($a > $numrows) { $a = $numrows ; }
$b = $s + 1 ;
echo "<p>Showing results $b to $a of $numrows</p>";
?>
2: I can't seem to get my sessionStart(); to work. The error that I recieve is "Fatal error: Call to undefined function sessionstart() in C:\xampp\htdocs\BazaarCeramics-Final\includes\session.php on line 2" ... Session Support is enabled on Apache... so what do I do?

Re: Displaying Images, and SessionStart();

Posted: Tue Oct 27, 2009 11:57 am
by infolock
try this:

Code: Select all

 
<?php
session_start();
 
// 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(empty($trimmed)) {
  echo "<p>Please enter a viable search parameter...</p>";
  return("No search parameters entered");
}
 
 
/*  THIS LINE WILL NEVER RING TRUE AS YOU ALREADY SET $var TO A VALUE.  MAYBE CHECK IF empty() */
// 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","root","rootadmin"); //(host, username, password)
//specify database ** EDIT REQUIRED HERE **
mysql_select_db("jlcbazaarceramics") or die("Unable to select database"); //select which database we're using
// Build SQL Query
 
 
/* UPDATED THIS TO CHECK IF VAR EVEN EXISTS TO AVOID WARNINGS */
// next determine if s has been passed to script, if not use 0
if(!isset($s) || empty($s)) {
  $s = 0;
}
 
$query = "select productName,productDesc,productPrice,productImage from products where productName like \"%$trimmed%\"
order by productName LIMIT $s, $limit"; // EDIT HERE and specify your table and field names for the SQL query
$result = mysql_query($query);
 
$numrows=mysql_num_rows($result);
// If we have no results, offer a google search as an alternative
if($numrows == 0) {
  echo "<h4>Results</h4><br />";
  echo "<p>Sorry, your search: "" . $trimmed . "" returned zero results</p>";
  // google
  echo "<p><a href=\"http://www.google.com/search?q="
  . $trimmed . "\" target=\"_blank\" title=\"Look up
  " . $trimmed . " on Google\">Click here</a> to try the
  search on google</p>";
  exit;
}
 
// display what the person searched for
echo "<p>You searched for: "" . $var . ""</p>";
// begin to show results set
 
echo "Results<br />";
$count = 1 + $s ;
 
// CHANGED THIS FROM MYSQL_FETCH_ARRAY TO MYSQL_FETCH_ASSOC
// now you can display the results returned
while ($row = mysql_fetch_assoc($result)) {
  echo "<table border=\"1px\" width=\"100%\">";
  echo "<tr><td rowspan=4>";
 
  $img = $row["productImage"];
 
  echo "<img src=\"$img\" />";
  echo "</td></tr>";
 
  $title = $row["productName"];
 
  echo "$count.)&nbsp;<b>Name:</b> $title<br />" ;
  echo "</td></tr>";
  echo "<tr><td>";
 
  $descript = $row["productDesc"];
 
  echo "&nbsp;<b>Description:</b> $descript<br />" ;
  echo ("</td></tr>");
  echo ("<tr><td>");
 
  $price = $row["productPrice"];
 
  echo "&nbsp;<b>Price:</b> $price<br />" ;
  echo ("</td></tr>");
  echo ("</table><br />");
 
  $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 "&nbsp;<a href=\"$PHP_SELF?s=$prevs&q=$var\"><<
  Prev 10</a>&nbsp&nbsp;";
}
 
// 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 "&nbsp;<a href=\"$PHP_SELF?s=$news&q=$var\">Next 10 >></a>";
}
 
$a = $s + ($limit) ;
 
if ($a > $numrows) { $a = $numrows ; }
 
$b = $s + 1 ;
 
echo "<p>Showing results $b to $a of $numrows</p>";
?>
 

Re: Displaying Images, and SessionStart();

Posted: Tue Oct 27, 2009 2:00 pm
by pickle
It looks like line 56 is where you output the image URL. Is that not working?
Also, echo is a language construct, not a function - so the parentheses aren't necessary.

sessionstart() isn't a PHP function, session_start() is however.

In the future, if you have multiple questions, feel free to put them each in their own post. We don't mind if you have lots of questions. Plus, one question per thread makes the followups much easier to read through.

Re: Displaying Images, and SessionStart();

Posted: Wed Oct 28, 2009 1:20 am
by jcausby
Thankyou.

Turns out that for the image, I was using double quotes (") instead of single quotes (') >.< Ack.

This is the code that I have at the moment. Regardless of page formatting (I hope to have the search results display in a table, so that it appears to be layed out nicely), it works.

Code: Select all

<?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 viable search parameter...</p>";
return("No search parameters entered");
}
 
//connect to your database ** EDIT REQUIRED HERE **
mysql_connect("localhost","root","rootadmin"); //(host, username, password)
//specify database ** EDIT REQUIRED HERE **
mysql_select_db("jlcbazaarceramics") or die("Unable to select database"); //select which database we're using
// Build SQL Query
$query = "select productName,productDesc,productPrice,productImage from products where productName like \"%$trimmed%\"
order by productName"; // 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><br />";
echo "<p>Sorry, your search: "" . $trimmed . "" returned zero results</p>";
// google
echo "<p><a href=\"http://www.google.com/search?q="
. $trimmed . "\" target=\"_blank\" title=\"Look up
" . $trimmed . " on Google\">Click here</a> to try the
search on google</p>";
return("Cannot find the specified search term.");
}
 
// display what the person searched for
echo "<p>You searched for: "" . $var . ""</p>";
 
// begin to show results set
echo "Results<br />";
$count = 1 + $s ;
 
// now you can display the results returned 
while ($row= mysql_fetch_array($result)) { 
$img = $row["productImage"];
echo "<img src='images/products/$img' />";
echo "<strong>Name: </strong>".$row['productName']. "<br />";
echo "<strong>Price: </strong>$".$row['productPrice']. "<br />";
echo "<strong>Description: </strong>".$row['productDesc']. "<br />";
echo "<a href=\"cart.php?action=add_item&id=" .$row["productId"]. "&qty=1\" ><img src='images/add2cart_16.png' alt=\"Add to Cart\" border=\"0\" /></a>";
echo ("<br /><br />");
$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 "&nbsp;<a href=\"$PHP_SELF?s=$prevs&q=$var\"><<
Prev 10</a>&nbsp&nbsp;";
}
 
// 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 "&nbsp;<a href=\"$PHP_SELF?s=$news&q=$var\">Next 10 >></a>";
}
 
$a = $s + ($limit) ;
if ($a > $numrows) { $a = $numrows ; }
 
$b = $s + 1 ;
echo "<p>Showing results $b to $a of $numrows</p>";
?>
As for the session_Start() ... I can't believe it was because I didn't have an underscore. >.< Oh well. It works (well, it seems to) fine now. No errors, or anything.

Again, thankyou for your help.
Jewel Lee Causby