UniqueData
asked on
error in while loop
I have a mySQL table called filterSetup which has 16 records. in the body of the page I loop through the recordset to dynamically create a form. That works fine. I see 16 rows. Each row has two text fields: operator1, value1 for row 1, operator2, value2 for row 2, etc. Again, this part seems to be fine.
On submit is where I am having trouble looping through the recordset, and perhaps I am even going about this whole thing wrong. But I have added some "alerts" and see that it gets through the first time but doesn't move to the next record.
I know that I should be using mysqli instead of mysql, and that will be my next task when the site is up and running.
Here is the result when I submit:
top of while
id:1 operator:contains value:bronco
starting update
update ok
running: Insert into reportfilters (filterLine) values('Manufacturer_Deale r_Name like \'%bronco%\'')
insert completed
moving to next
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in /home/uniqueda/public_html /xtime/fil terForm.ph p on line 11
On submit is where I am having trouble looping through the recordset, and perhaps I am even going about this whole thing wrong. But I have added some "alerts" and see that it gets through the first time but doesn't move to the next record.
I know that I should be using mysqli instead of mysql, and that will be my next task when the site is up and running.
<?php
require_once('config.php');
if (!empty($_POST["applyFilter"]) )
{
$sql = "Delete from reportfilters";
if (!$res = mysql_query($sql)) die( mysql_error() );
$sql = "SELECT * FROM filterSetup order by filterID" ;
$res = mysql_query($sql);
if (!$res) die( mysql_error() );
while ($row = mysql_fetch_assoc($res))
{
echo "</br>top of while</br>";
$filterID =$row["filterID"];
$operator = $_POST["operator".$filterID];
$value = '';
if (!empty($_POST["value".$row["filterID"]]) ) {
$value = mysql_real_escape_string($_POST["value".$filterID]);
}
echo "id:".$filterID." operator:".$operator." value:".$value;
//save the filterSetup
echo "</br>starting update";
$sql = "Update filterSetup set myOperator='".$operator."', filterValue='".$value."'".
" where filterID=".$filterID;
if (!$res = mysql_query($sql)) die( mysql_error() );
echo "</br>update ok";
//save the filterLine
if ($value !='' ) {
if ($operator =='contains') {
$strFilter=" like '%". $value . "%'";
} else {
$strFilter=$operator . "'" . $value . "'";
}
$strFilter= $row["filterField"] . $strFilter;
$sql = "Insert into reportfilters (filterLine) values('".mysql_real_escape_string($strFilter)."')";
echo "</br>running: ".$sql;
if (!$res = mysql_query($sql)) die( mysql_error() );
echo "</br>insert completed";
}
echo "</br>moving to next";
}
//header("Location: gridDisplay_new.php?viewid=1" );
//exit;
}
?>
<form action="filterForm.php" id="filterForm" name="filterForm" method="POST">
<?php
$sql2 = "SELECT * FROM filterSetup order by filterID" ;
$res2 = mysql_query($sql2);
if (!$res2) die( mysql_error() );
?>
<table>
<?php
while ($row2 = mysql_fetch_assoc($res2))
{
?>
<tr>
<td><?php echo $row2["filterField"]; ?></td>
<td>
<select name="operator<?php echo $row2["filterID"]; ?>">
<option value = "contains" <?php if ($row2["myOperator"]=="contains") echo " selected" ?>>contains</option>
<option value = "=" <?php if ($row2["myOperator"]=="=") echo " selected" ?>>=</option>
<option value = "!=" <?php if ($row2["myOperator"]=="!=") echo " selected" ?>>!=</option>
<option value = "<" <?php if ($row2["myOperator"]=="<") echo " selected" ?>><</option>
<option value = ">" <?php if ($row2["myOperator"]==">") echo " selected" ?>>></option>
<option value = "<=" <?php if ($row2["myOperator"]=="<=") echo " selected" ?>><=</option>
<option value = ">=" <?php if ($row2["myOperator"]==">=") echo " selected" ?>>=></option>
</select>
</td>
<td><input type="text" name="value<?php echo $row2['filterID']; ?>" value="<?php echo $row2["filterValue"] ?>" /></td>
</tr>
<?php
}
?>
</table>
<input type="submit" value="Apply Changes" name="applyFilter" id="applyFilter" />
</form>
<button id="closeSlide">Close Filter Menu</button>
Here is the result when I submit:
top of while
id:1 operator:contains value:bronco
starting update
update ok
running: Insert into reportfilters (filterLine) values('Manufacturer_Deale
insert completed
moving to next
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in /home/uniqueda/public_html
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Glad I could help!
ASKER
thanks for your time