Jump to content

Problem executing PHP script within WordPress


aec

Recommended Posts

I've been lurking here for some time, but this is a really specific problem that I can't find a solution to.

 

I'm developing a site for a local business, and one of the features of the site is integration of the company's inventory--so customers can search and find products to hopefully buy them. I've developed the following script, and it runs fine on my local computer's webserver (Apache on Leopard)--but when placed into the WordPress page, it won't run. I've already installed the appropriate WordPress plugins to allow PHP to be executed within a page--and all other pages work properly, including those with other scripts. Apparently something is being lost in translation between my local server and our hosting company--which is strange since I'm copying and pasting the script exactly (except for replacing the "<?php" with "[exec]" and "?>" with "[/exec]" per the plugin's requirements).

 

Any ideas at all?

 

<?php

//connect to mysql database
//host:
$host = 'XXXXXXXXXXXXX';
//user:
$user = 'XXXXXXXXXXXXXX';
//password:
$password = 'XXXXXXXXXXXXXXXXX';

$con = mysql_connect($host,$user,$password);
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
//end connect to mysql database

mysql_select_db("XXXXXXXXXXXXXXXX", $con);

//define script variables
$sortby=$_POST['sortby'] ;

$manufacturer=$_POST['manufacturer'] ;

$standard_keyword="%" . $_POST[keyword] . "%";

$string=$_POST[keyword];
//end define script variables

//count search keywords and break search query into multiple keyword variables
$token = strtok($string, " ");
$n=0;
while ($token != false)
  {
  $n++;
  $keyword{$n}=$token;
  $token=strtok(" ");
  }
$total_n=$n;
$n=0;
//end count search keywords and break search query into multiple keyword variables

//construct ProductNameSRCH query
switch ($total_n) {
case 0:
	$optimized_query_for_ProductNameSRCH = "'%'";
	break;
case 1:
	$optimized_query_for_ProductNameSRCH = "'%" . $keyword{1} . "%'";
	break;
case 2;
	$optimized_query_for_ProductNameSRCH = "'%" . $keyword{1} . "%' OR ProductName LIKE '%" . $keyword{2} . "%'";
	break;
case 3;
	$optimized_query_for_ProductNameSRCH = "'%" . $keyword{1} . "%' OR ProductName LIKE '%" . $keyword{2} . "%' OR ProductName LIKE '%" . $keyword{3} . "%'";
	break;
case 4;
	$optimized_query_for_ProductNameSRCH = "'%" . $keyword{1} . "%' OR ProductName LIKE '%" . $keyword{2} . "%' OR ProductName LIKE '%" . $keyword{3} . "%' OR ProductName LIKE '%" . $keyword{4} . "%'";
	break;
case 5;
	$optimized_query_for_ProductNameSRCH = "'%" . $keyword{1} . "%' OR ProductName LIKE '%" . $keyword{2} . "%' OR ProductName LIKE '%" . $keyword{3} . "%' OR ProductName LIKE '%" . $keyword{4} . "%' OR ProductName LIKE '%" . $keyword{5} . "%'";
	break;
case 6;
	$optimized_query_for_ProductNameSRCH = "'%" . $keyword{1} . "%' OR ProductName LIKE '%" . $keyword{2} . "%' OR ProductName LIKE '%" . $keyword{3} . "%' OR ProductName LIKE '%" . $keyword{4} . "%' OR ProductName LIKE '%" . $keyword{5} . "%' OR ProductName LIKE '%" . $keyword{6} . "%'";
	break;
case 7;
	$optimized_query_for_ProductNameSRCH = "'%" . $keyword{1} . "%' OR ProductName LIKE '%" . $keyword{2} . "%' OR ProductName LIKE '%" . $keyword{3} . "%' OR ProductName LIKE '%" . $keyword{4} . "%' OR ProductName LIKE '%" . $keyword{5} . "%' OR ProductName LIKE '%" . $keyword{6} . "%' OR ProductName LIKE '%" . $keyword{7} . "%'";
	break;
case 8;
	$optimized_query_for_ProductNameSRCH = "'%" . $keyword{1} . "%' OR ProductName LIKE '%" . $keyword{2} . "%' OR ProductName LIKE '%" . $keyword{3} . "%' OR ProductName LIKE '%" . $keyword{4} . "%' OR ProductName LIKE '%" . $keyword{5} . "%' OR ProductName LIKE '%" . $keyword{6} . "%' OR ProductName LIKE '%" . $keyword{7} . "%' OR ProductName LIKE '%" . $keyword{8} . "%'";
	break;
case 9;
	$optimized_query_for_ProductNameSRCH = "'%" . $keyword{1} . "%' OR ProductName LIKE '%" . $keyword{2} . "%' OR ProductName LIKE '%" . $keyword{3} . "%' OR ProductName LIKE '%" . $keyword{4} . "%' OR ProductName LIKE '%" . $keyword{5} . "%' OR ProductName LIKE '%" . $keyword{6} . "%' OR ProductName LIKE '%" . $keyword{7} . "%' OR ProductName LIKE '%" . $keyword{8} . "%' OR ProductName LIKE '%" . $keyword{9} . "%";
	break;
case 10;
	$optimized_query_for_ProductNameSRCH = "'%" . $keyword{1} . "%' OR ProductName LIKE '%" . $keyword{2} . "%' OR ProductName LIKE '%" . $keyword{3} . "%' OR ProductName LIKE '%" . $keyword{4} . "%' OR ProductName LIKE '%" . $keyword{5} . "%' OR ProductName LIKE '%" . $keyword{6} . "%' OR ProductName LIKE '%" . $keyword{7} . "%' OR ProductName LIKE '%" . $keyword{8} . "%' OR ProductName LIKE '%" . $keyword{9} . "%' OR ProductName LIKE '%" . $keyword{10} . "%'";
	break;
}
//end construct ProductNameSRCH query

//construct ManufacturerSRCH query
switch ($total_n) {
case 0:
	$optimized_query_for_ManufacturerSRCH = "'%'";
	break;
case 1:
	$optimized_query_for_ManufacturerSRCH = "'%" . $keyword{1} . "%'";
	break;
case 2;
	$optimized_query_for_ManufacturerSRCH = "'%" . $keyword{1} . "%' OR Manufacturer LIKE '%" . $keyword{2} . "%'";
	break;
case 3;
	$optimized_query_for_ManufacturerSRCH = "'%" . $keyword{1} . "%' OR Manufacturer LIKE  '%" . $keyword{2} . "%' OR Manufacturer LIKE  '%" . $keyword{3} . "%'";
	break;
case 4;
	$optimized_query_for_ManufacturerSRCH = "'%" . $keyword{1} . "%' OR Manufacturer LIKE  '%" . $keyword{2} . "%' OR Manufacturer LIKE  '%" . $keyword{3} . "%' OR Manufacturer LIKE  '%" . $keyword{4} . "%'";
	break;
case 5;
	$optimized_query_for_ManufacturerSRCH = "'%" . $keyword{1} . "%' OR Manufacturer LIKE  '%" . $keyword{2} . "%' OR Manufacturer LIKE  '%" . $keyword{3} . "%' OR Manufacturer LIKE  '%" . $keyword{4} . "%' OR Manufacturer LIKE  '%" . $keyword{5} . "%'";
	break;
case 6;
	$optimized_query_for_ManufacturerSRCH = "'%" . $keyword{1} . "%' OR Manufacturer LIKE  '%" . $keyword{2} . "%' OR Manufacturer LIKE  '%" . $keyword{3} . "%' OR Manufacturer LIKE  '%" . $keyword{4} . "%' OR Manufacturer LIKE  '%" . $keyword{5} . "%' OR Manufacturer LIKE  '%" . $keyword{6} . "%'";
	break;
case 7;
	$optimized_query_for_ManufacturerSRCH = "'%" . $keyword{1} . "%' OR Manufacturer LIKE  '%" . $keyword{2} . "%' OR Manufacturer LIKE  '%" . $keyword{3} . "%' OR Manufacturer LIKE  '%" . $keyword{4} . "%' OR Manufacturer LIKE  '%" . $keyword{5} . "%' OR Manufacturer LIKE  '%" . $keyword{6} . "%' OR Manufacturer LIKE  '%" . $keyword{7} . "%'";
	break;
case 8;
	$optimized_query_for_ManufacturerSRCH = "'%" . $keyword{1} . "%' OR Manufacturer LIKE  '%" . $keyword{2} . "%' OR Manufacturer LIKE  '%" . $keyword{3} . "%' OR Manufacturer LIKE  '%" . $keyword{4} . "%' OR Manufacturer LIKE  '%" . $keyword{5} . "%' OR Manufacturer LIKE  '%" . $keyword{6} . "%' OR Manufacturer LIKE  '%" . $keyword{7} . "%' OR Manufacturer LIKE  '%" . $keyword{8} . "%'";
	break;
case 9;
	$optimized_query_for_ManufacturerSRCH = "'%" . $keyword{1} . "%' OR Manufacturer LIKE  '%" . $keyword{2} . "%' OR Manufacturer LIKE  '%" . $keyword{3} . "%' OR Manufacturer LIKE  '%" . $keyword{4} . "%' OR Manufacturer LIKE  '%" . $keyword{5} . "%' OR Manufacturer LIKE  '%" . $keyword{6} . "%' OR Manufacturer LIKE  '%" . $keyword{7} . "%' OR Manufacturer LIKE  '%" . $keyword{8} . "%' OR Manufacturer LIKE  '%" . $keyword{9} . "%";
	break;
case 10;
	$optimized_query_for_ManufacturerSRCH = "'%" . $keyword{1} . "%' OR Manufacturer LIKE  '%" . $keyword{2} . "%' OR Manufacturer LIKE  '%" . $keyword{3} . "%' OR Manufacturer LIKE  '%" . $keyword{4} . "%' OR Manufacturer LIKE  '%" . $keyword{5} . "%' OR Manufacturer LIKE  '%" . $keyword{6} . "%' OR Manufacturer LIKE  '%" . $keyword{7} . "%' OR Manufacturer LIKE  '%" . $keyword{8} . "%' OR Manufacturer LIKE  '%" . $keyword{9} . "%' OR Manufacturer LIKE  '%" . $keyword{10} . "%'";
	break;
}
//end construct ManufacturerSRCH query


//optimized search functions
$optimized_match_query="SELECT * FROM (SELECT * FROM (SELECT * FROM Inventory 
WHERE ProductName LIKE $optimized_query_for_ProductNameSRCH) AS ProductNameSRCH
	WHERE Manufacturer LIKE $optimized_query_for_ManufacturerSRCH) AS ManufacturerSRCH
		WHERE IntPrice<>'NULL'";
	$optimized_match=mysql_query($optimized_match_query);
//end optimized search functions

//standard search functions
if ($manufacturer=='all_manufacturers')
{
	$query="SELECT * FROM Inventory
	WHERE IntPrice<>'NULL'
	AND (keywords LIKE '$standard_keyword'
	OR ProductName LIKE '$standard_keyword'
	OR Manufacturer LIKE '$standard_keyword'
	OR ProductDescription LIKE '$standard_keyword'
	OR ProductColor LIKE '$standard_keyword'
	OR pid LIKE '$standard_keyword')
                ORDER BY $sortby";
	$match = mysql_query($query);
}

if ($manufacturer<>'all_manufacturers')
{
	$query="SELECT * FROM Inventory
	WHERE IntPrice<>'NULL'
	AND (keywords LIKE '$standard_keyword'
	OR ProductName LIKE '$standard_keyword'
	OR ProductDescription LIKE '$standard_keyword'
	OR ProductColor LIKE '$standard_keyword'
	OR pid LIKE '$standard_keyword')
	AND (Manufacturer LIKE '$manufacturer')
                ORDER BY $sortby ";
	$match = mysql_query($query);
}
//end standard seach functions

//display search term
echo "<b>Search term:</b><br /><br />";
echo "<i>$_POST[keyword]</i>";
echo "<br />";
echo "<br />";

//display optimized search results
echo "<b>Optimized search results:</b><br /><br />";
while($row = mysql_fetch_array($optimized_match))
  {
  $pidlink = $row['pid'];
  $url="http://costumecurio.com/sales/product-info/?&pid=" . $row['pid'];
  echo "<a href='$url'>$row[ProductName]</a>" . " - " ;
  if ($row['ProductColor']!=NULL) echo $row['ProductColor'] . " - " ;
  echo "by " ;
  echo $row['Manufacturer'] . " - " ;
  echo "Price: $" . $row['ProductPrice'] ;
  echo "<br />";
  }
echo "<br />";

//display standard search results
echo "<b>Standard search results:</b><br /><br />";
while($row = mysql_fetch_array($match))
  {
  $pidlink = $row['pid'];
  $url="http://costumecurio.com/sales/product-info/?&pid=" . $row['pid'];
  echo "<a href='$url'>$row[ProductName]</a>" . " - " ;
  if ($row['ProductColor']!=NULL) echo $row['ProductColor'] . " - " ;
  echo "by " ;
  echo $row['Manufacturer'] . " - " ;
  echo "Price: $" . $row['ProductPrice'] ;
  echo "<br />";
  }

?>

Thanks for the tip on "Match Against"--I'll definitely be looking into that soon.

 

I just checked php_errors.log on the server and found nothing relating to this query--I then changed the page back to the problematic code and tried again--still no errors in the log. I'm not sure what's causing it...any other places I could look or check?

 

Thank you so much for the quick response.

 

-Kyle

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.