469,317 Members | 1,977 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,317 developers. It's quick & easy.

Problem Finding Occurances Of One String Within Another

Can anybody see what is wrong with this code? apparently i have an 'empty
delimiter' on the line that sets $pos - can anybody see what is wrong with
it?
$search_for = $_GET['for'];
$the_items_description = $row ["description"];
$pos = stristr($the_items_description, $search_for);

if ($search_for == "") {
$does_contain_text = true;
} elseif ($pos === false) {
$does_contain_text = false;
} else {
$does_contain_text = true;
}

// end text search
if ($does_contain_text == true) { // rest of page works fine
Jul 17 '05 #1
5 2974
Matthew Robinson wrote:
Can anybody see what is wrong with this code? apparently i have an 'empty
delimiter' on the line that sets $pos - can anybody see what is wrong with
it?
$search_for = $_GET['for'];
$the_items_description = $row ["description"];
$pos = stristr($the_items_description, $search_for);

if ($search_for == "") {
$does_contain_text = true;
} elseif ($pos === false) {
$does_contain_text = false;
} else {
$does_contain_text = true;
}

// end text search
if ($does_contain_text == true) { // rest of page works fine


Looks fine here.
Do you have a mismatched quote somewhere before this code?
I mean, before the line that sets $search_for?
--
--= my mail box only accepts =--
--= Content-Type: text/plain =--
--= Size below 10001 bytes =--
Jul 17 '05 #2
have a look on the link below for the output
http://www.houseproudlancs.co.uk/sea...+%26+Furniture
the whole page:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<body bgcolor="#8C999B">
<?php
$search_for = $_GET['for'];
$search_category = $_GET['category']; global $search_for;
global $search_category;
global $the_items_description;
global $does_contain_text;
?>

<div align=center>
<form action="http://www.houseproudlancs.co.uk/search.php"
method="GET"> <br><table bgcolor="#FFF8D7" cellpadding=6>
<tr> <td> </td> </tr> <tr> <td> <div align=center> Search For:
</div></td> <td> <div align=center> Category: </div></td> </td>
</tr> <tr> <td>
<INPUT name=for value=<?php echo ("$search_for"); ?>>
</td> <td>
<SELECT NAME=category SIZE=1>
<OPTION <?php if ($search_category == "Search All
Categories") { echo ("SELECTED"); } ?>>Search All Categories
<OPTION <?php if ($search_category == "Floral Creations") {
echo ("SELECTED"); }?>>Floral Creations <OPTION <?php if
($search_category == "Decorative Lighting") { echo
("SELECTED"); }?>>Decorative Lighting <OPTION <?php if
($search_category == "Kitchenware & Crockery") { echo
("SELECTED"); }?>>Kitchenware & Crockery <OPTION <?php if
($search_category == "Fancy Goods & Furniture") { echo
("SELECTED"); }?>>Fancy Goods & Furniture
</SELECT>
</td> <td>
<INPUT TYPE=submit VALUE="Search">
</td>
</form>
<tr> <td> </td> </tr>
</table>
</div>
<?php
switch ($search_category) {
case "":
exit;
break;
case "Search All Categories":
$filter_category = "*" ;
break;
case "Floral Creations":
$filter_category = "floral";
break;
case "Decorative Lighting":
$filter_category = "lighting";
break;
case "Kitchenware & Crockery":
$filter_category = "kitchenware";
break;
case "Fancy Goods & Furniture":
$filter_category = "furniture";
break;
default:
echo ("<P>Error - The Selected Category Was Not Found</P>"); break;
}

$dbcnx = @mysql_connect("srv",
"usr", "pwd"); $select =
@mysql_select_db("houseproudlancs_co_uk1"); if ($filter_category ==
"*") {
$command = "SELECT * FROM `stock` WHERE 1 ORDER BY `id`";
} else {
$command = "SELECT * FROM `stock` WHERE 1 AND `category` LIKE
\"$filter_category\" ORDER BY `id`";
}
$qresult = mysql_query($command);

echo ("text search returned true");

$started_table = false;
while ($row = mysql_fetch_array($qresult)) {
//text search
$the_items_description = $row ["description"];
$pos = stristr($the_items_description, $search_for);

echo ("POS = ");
echo ("$pos");
echo ("<br>item description = ");
echo ("$the_items_description");
echo ("<br> search for = ");
echo ("$search_for");
echo ("<br>");
if ($search_for == "") {
$does_contain_text = true;
} elseif ($pos === false) {
$does_contain_text = false;
} else {
$does_contain_text = true;
}

// end text search
if ($does_contain_text == true) {

if ($started_table = false) {
echo ("<center><table width=80% cellpadding=5>"); $tablebgcolor =
"#FFF8D7"; }

if ($tablebgcolor == "#FFF8D7"){ //yellow
$tablebgcolor = "#C5C8FF"; //blue
} else {
$tablebgcolor = "#FFF8D7";
} ?>

<tr ><td> <table border=0 cellspacing=3 width=100% bgcolor=<?php
echo ("$tablebgcolor"); ?>> <tr><td> <table> <tr>
<?php
switch ($row ["category"]) {
case "lighting":
$item_category = "Decorative Lighting"; break;
case "floral";
$item_category = "Floral Creations";
break;
case "kitchenware":
$item_category = "Kitchenware & Crockery"; break;
case "furniture":
$item_category = "Fancy Goods & Furniture"; break;
default;
$item_category = "Unknown Category";
break;
}
?>
<td><pre>Name: </pre></td> <td><b><?php echo ($row
["name"]); ?> </b> </td></tr><tr> <td><pre>Description:
</pre></td> <td><?php echo ($row ["description"]); ?>
</td></tr><tr> <td><pre>Category: </pre></td> <td><?php echo
($item_category); ?> </td></tr><tr> <td><pre>Price:
?</pre></td> <td><?php echo ($row ["price"]); ?>
</td></tr><tr> <td><pre>P&P: ?</pre></td> <td><?php echo
($row ["pandp"]); ?> </td></tr><tr>
<?php $quantity = $row ["quantity"];
if ($quantity != "0") { ?>
<td><pre>Quantity: </pre></td> <td><?php echo ($row
["quantity"]); ?> </td></tr><tr><?php } ?>
<td><pre>Product ID: </pre></td> <td> <?php echo ($row
["id"]); ?> </td></tr><tr><td>
<?php if ($quantity == "0") { ?>
<td><b> <font color=#DD0000> Temporarily Out Of Stock
</b></font></tr><tr>
<?php } ?>
</td></tr></table>
</td><td width=30%>
<?php $pictureid = $row ["id"]; ?>
<?php $picturepath = "./images/" . $pictureid . ".jpg"; ?>
<?php
if (file_exists($picturepath)) {
echo ("<div align=\"center\"><a href=\"$picturepath\"
target=LargeImage><img src=$picturepath height=200 alt='Image
Of Product'></a><font size=2><br>Click The Image To See It Full
Size In A New Window</font></div>");
} else {
echo ("<div align=\"center\"><img src=\"/images/nopic.png\"
height=200 alt='No Picture Available'></a><font
size=2><br>Sorry, There Is No Available Picture For This
Item</font></div>");
}
?>
</td></tr></table></td></tr>
<?php } ?>
</table></center>

<?php } ?>

Jul 17 '05 #3
that post from karen cooke was me - thats my girlfriend and i accidently
clicked her profile
Jul 17 '05 #4
Matthew Robinson wrote:
that post from karen cooke was me - thats my girlfriend and i accidently
clicked her profile


Your problem is in the stristr() call

$search_for is "" (the URL was ....search.php?for=&category....)
and stristr() gives that warning.

Put this before the line that sets $pos

if ($search_for === '') $search_for = ':X:X:';
// hopefully ":X:X:" is something that is *never* in $the_items_description
--
--= my mail box only accepts =--
--= Content-Type: text/plain =--
--= Size below 10001 bytes =--
Jul 17 '05 #5
thanks again (again) pedro
Jul 17 '05 #6

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

1 post views Thread by kong | last post: by
7 posts views Thread by addled | last post: by
1 post views Thread by Andrew Poulos | last post: by
4 posts views Thread by David Warner | last post: by
5 posts views Thread by Paul | last post: by
reply views Thread by zhoujie | last post: by
reply views Thread by suresh191 | last post: by
1 post views Thread by Geralt96 | last post: by
reply views Thread by harlem98 | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.