Jump to content

Undefined Variable: PHP_SELF, pls help


cottonbuds2005

Recommended Posts

Hi,

 

Im a newbie on PHP / MySQL programming and Im running a script to search one field on my DB table. The results will show after I key in my search word but there's an error below that says: Undefined variable: PHP_SELF in C:\wamp\www\ITInventoryApplication\ITInventory\files\SearchSerial.php on line 105. Also the link to the next page is not clickable.

 

When I change to $_SERVER['PHP_SELF'] I get:

Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING'.

 

Pls help me... thanks.

 

___________________________________________________________

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<?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","root",""); //(host, username, password)

 

//specify database ** EDIT REQUIRED HERE **

mysql_select_db("itinventory") or die("Unable to select database"); //select which database we're using

 

// Build SQL Query 

$query = "select * from assetsdb where SerialNo like \"%$trimmed%\" 

  order by SerialNo"; // 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>";

 

// 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";

$count = 1 + $s ;

 

// now you can display the results returned

  while ($row= mysql_fetch_array($result)) {

  $title = $row["SerialNo"];

 

  echo "$count.) $title" ;

  $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>&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 " <a href=\"$_SERVER['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>";

 

?>

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Untitled Document</title>

</head>

 

<body>

</body>

</html>

Link to comment
https://forums.phpfreaks.com/topic/178803-undefined-variable-php_self-pls-help/
Share on other sites

please put your code within code tags..

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<?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","root",""); //(host, username, password)

//specify database ** EDIT REQUIRED HERE **
mysql_select_db("itinventory") or die("Unable to select database"); //select which database we're using

// Build SQL Query 
$query = "select * from assetsdb where SerialNo like \"%$trimmed%\" 
  order by SerialNo"; // 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>";

// 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";
$count = 1 + $s ;

// now you can display the results returned
  while ($row= mysql_fetch_array($result)) {
  $title = $row["SerialNo"];

  echo "$count.) $title" ;
  $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>&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 " <a href=\"$_SERVER['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>";

?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
</body>
</html>

what I did in my previous post, just makes it easier to read

 

  if (!((($s+$limit)/$limit)==$pages) && $pages!=1) {

  // not last page so give NEXT link
  $news=$s+$limit;

  echo " <a href=\"$_SERVER['PHP_SELF']?s=$news&q=$var\">Next 10 >></a>";
  }

 

this is the code giving you problems?

 

for "Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING'.", what line is that error on?

this are the codes in reference to PHP_SELF, both edited according to smerny's suggestion. mikesta707, i had the parse error when I did your code idea.

 

>>Next Page is still not clickable. Hope there are any more suggestions

 

print " <a href=\"".$_SERVER['PHP_SELF']."?s=".$prevs."&q=".$var."\"><<

  Prev 10</a>&nbsp ";

 

echo " <a href=\"".$_SERVER['PHP_SELF']."?s=".$news."&q=".$var."\">Next 10 >></a>";

  • 7 months later...

Archived

This topic is now archived and is closed to further replies.

×
×
  • 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.