Hi All, Here is the problem: I have a quey building form that returns results from a database as a form to generate a new query. On open, it shows a form, then on submit it shows resutls that are in a form (checkboxes that let you omit that record from the next query by $id).
What I want to do is let the user save the page to show others in his group. First I though of saving the query, but then it seemed simpler to just save the resutling html to a file that could be referenced in email. How do you get the current page to slurp into a file along with all the current variables? On an unrelated note, it seems like I'm generating the restults twice. Any input on how to stream-line it? full script: <?php if ($save) { //save is a hidden field, will always be true so that I can test fwriting to saved.html $fp = fopen("/home/www/html/locations/site/saved.html", w); //$fp = fopen("saved.html", w); //fflush($fp); //fpassthru($fp); fwrite($fp, ??); } # ln -s index.php omit.php # This file is a search form/query builder with the ability to # pare down a result set. function Refine($query, $to_omit) { $query = str_replace("order by locations.id", "AND ", $query); /* //debug: foreach ($HTTP_POST_VARS as $k => $v){ echo "k: $k, v: <pre>$v</pre>"; } */ if ($to_omit) { trim($to_omit); $arr_to_omit = explode(" ", $to_omit); array_pop($arr_to_omit); foreach($arr_to_omit as $v) { $query .= "locations.id != '$v' AND \n"; } } $query = chop($query); $query = substr_replace($query, '', -3, 3); $query .= " order by locations.id"; $query = str_replace("~", "'", $query); return $query; } ?> <html> <head><title>Locations search</title> <link rel="stylesheet" href="images/klamath.css" type="text/css"> <script language="JavaScript"> <!-- hide from old browser// function checkOmit() { var form = document.refine form.to_omit.value = '' for (var i = 0; i < (form.omit.length); i++) { if (form.omit[i].checked) { form.to_omit.value += (form.omit[i].value) + ' ' } } return true } //quit hiding --> </script> </head> <body bgcolor="#6E89AB"> <?php $db = mysql_connect("localhost", "user", "password") or die ("No connection"); mysql_select_db("locations",$db) or die ("No select db"); if ($submit == 'refine') { Refine(&$query, $to_omit); //debug: // echo "<h2>After function calll we get:</h2>\"$query\""; /* //debug: $headers = getallheaders(); while (list ($header, $value) = each ($headers)) { echo "$header: $value<br>\n"; } */ $res = mysql_query ($query, $db) or die ("<br>Bad query, comrade. line 77, number: ".mysql_errno().", ". mysql_error()); $query = str_replace("'", "~", $query); //gotta hack 2wice $numrows = mysql_numrows($res); if($numrows < 1) { echo "Nope, nothing like that."; } echo "<h2>Refined Results:</h2>\n"; echo "<form name=refine onSubmit='return checkOmit();' method=post>\n"; echo "<input type=hidden name=query value=\"$query\"><br>"; echo "<input type=hidden name=refine value=true>\n"; echo "<input type=hidden name=to_omit value='$to_omit'>\n"; echo "<input type=hidden name=save value='save'>\n"; echo "<table><tr><td background='images/bg-menu.gif'valign=top>\n"; include "menu.php"; echo "</td><td>\n"; echo "<table align=center width=95%>\n"; echo "<tr bgcolor=silver><td>Thumbnail</td><td>Address</td><td>Contact</td></tr>\n"; $c = 0; while (($row = mysql_fetch_array ($res)) && $numrows > 0) { $c++; $id = $row[id]; $loc_name = $row[loc_name]; $folder = $row[folder]; $thumb = $row[thumb]; $address = $row[address]; $city = $row[city]; $state = $row[state]; $zip = $row[zip]; $contact_id = $row[contact_id]; $name = $row[name]; if(strlen($description) > 150) { $description = substr($row[description], 0, 150).'...'; } $type = $row[type]; if ($c % 2 == 0) { $bg = "bgcolor=lightgrey"; } else { $bg = 'bgcolor=white'; } echo "<tr $bg>\n <td><input type=checkbox name=omit value=$id>Omit<br>\n <a href='$PHP_SELF?id=$id'><img src='$folder/thumbs/$thumb'></a></td>\n <td>$loc_name<br>$address<br>$city, $state $zip</td>\n <td>$name</td></tr>"; } echo "<tr bgcolor=black><td colspan=3><font color=red>"; //debug: //echo "Count of results: $numrows, contents of to_omit: $to_omit"; echo "Count of results: $numrows"; echo "</font></td></tr> <tr><td colspan=3><input type=submit name=submit value=refine> <input type=reset name=reset value=reset></td></tr> </table> </td></tr></table> </form>"; //debug: //echo $query; } elseif ($id > 0){ // end refine, here begins detail record bookmark $query = "select * from locations, contact where contact_id = contact.id and locations.id = '$id'"; //debug: //echo "$query<br><br>"; $res = mysql_query ($query, $db) or die ("No selection, number: ".mysql_errno().", ". mysql_error()); $row = mysql_fetch_array($res); /* //debug: foreach($row as $k => $v){ echo "k: $k, v: $v<br>"; } */ $location_id = $row[0]; $loc_name = $row[loc_name]; $rci = $row[rci]; $folder = $row[folder]; $thumb = $row[thumb]; $type = $row[type]; $description = $row[description]; $rooms = $row[rooms]; $kw = $row[kw]; $special = $row[special]; $address = $row[10]; $city = $row[11]; $state = $row[12]; $zip = $row[13]; $contact_id = $row[contact_id]; $id = $row[15]; $name = $row[name]; $c_address = $row[address]; $c_city = $row[city]; $c_state = $row[state]; $c_zip = $row[zip]; $c_phone = $row[phone]; $email = $row[email]; echo "<table width=95% align=center><tr><td valign=top bgcolor=lightgrey> <b>id:</b> $location_id<br>\n <b>Thumbnail:</b> <br> <a href='/locations/site/$folder/' target=ass> <img src='/locations/site/$folder/thumbs/hero.jpg' heigth='120' width=160' alt='Click to open new window with links to large images'> <br>$loc_name </a><br><font size=1>Click to open images in new window</font><br><br>\n <b>Site Name:</b> $loc_name <br>\n <b>Address:</b> $address <br>\n <b>City:</b> $city, $state $zip<br><br>\n <b>Zone(rci):</b> $rci<br>\n <b>Type:</b> $type<br>\n <b>Description:</b> $description<br>\n <b>Rooms:</b> $rooms<br>\n <b>Keywords:</b> $kw<br>\n <b>Special:</b> $special<br>\n <br><br> <b>Contact:</b><br> Name: $name<br>\n Address: $c_address<br>\n $c_city, $c_state $c_zip<br><br>\n <b>Phone:</b> $c_phone<br> <b>Email:</b> $email<br> <a href='http://maps.yahoo.com?addr=".urlencode("$address")."&csv=$zip'>Driving Directions</a><br>\n </td><td valign=top>"; ##start inc.menu for detail display $dio = opendir("$folder/thumbs"); $i=0; while ($file = readdir($dio)){ if(is_dir($file)==false && substr($file, 0, 4) != "inc." && substr($file, 0, 1) != '.'){ $farray[$i] = $file; $i++; } } if (is_array($farray)==true) { sort($farray); } for ($j = 0; $j < $i; $j++){ if (substr($farray[$j], -4) == '.htm') { echo "<a href='$folder/thumbs/$farray[$j]'>\n"; echo "<img src='$folder/thumbs/".substr($farray[$j], 0, -4)."' border=0></a>"; } } closedir($dio); ## end inc.menu stuff echo "</td></tr></table>"; } elseif ($search) { //end detail begin main search form handling, generate query based on input bookmark $query = "select locations.id, loc_name, locations.thumb, locations.folder, locations.address, locations.city, locations.state, locations.zip, contact.name from locations, contact where locations.contact_id = contact.id AND \n"; if ($rci) { $query .= "rci = '$rci' AND \n"; } if ($type) { $query .= "type like '%$type%' AND \n"; } if ($description) { $query .= "description like '%$description%' AND \n"; } if ($rooms) { $query .= "rooms like '%$rooms%' AND \n"; } if ($kw) { $query .= "kw like '%$kw%' AND \n"; } if ($address) { $query .= "locations.address like '%$address%' AND \n"; } if ($city) { $query .= "locations.city like '%$city%' AND \n"; } if ($state) { $query .= "locations.state like '%$state%' AND \n"; } if ($zip) { $query .= "locations.zip like '$zip%' AND \n"; } if ($contact_id) { $query .= "contact_id = '$contact_id' AND \n"; } $query = chop($query); //chop off newline $query = substr_replace($query, "", -3, 3); //chop off AND $query .= " order by locations.id"; /* //debug: foreach ($HTTP_POST_VARS as $k => $v){ echo "k: $k, v: <pre>$v</pre>"; } */ // echo "<h2>Query:</h2><pre>\"".$query."\"</pre><br>"; $res = mysql_query ($query, $db) or die ("No quyery comrade, number: ".mysql_errno().", ". mysql_error()); //hack to make the single quote stay in hte query $query = str_replace("'", "~", $query); $numrows = mysql_numrows($res); if($numrows < 1) { echo "Nope, nothing like that."; } //gonna try a form here to find a set from out of a set. echo "<h2>Results:</h2>\n"; echo "<table width=95%><tr><td background='images/bg-menu.gif'valign=top width=150>\n"; include "menu.php"; echo "</td><td>\n"; echo "<form name=refine action=$PHP_SELF onSubmit='return checkOmit();' method=post>\n"; echo "<table align=center width=100%>\n"; echo "<input type=hidden name=refine value=true>\n"; echo "<input type=hidden name=query value=$query>\n"; echo "<input type=hidden name=to_omit value=''>\n"; echo "<tr bgcolor=silver><td>Thumbnail</td><td>Address</td><td>Contact</td></tr>\n"; $c = 0; while (($row = mysql_fetch_array ($res)) && $numrows > 0) { $c++; $id = $row[id]; $loc_name = $row[loc_name]; $folder = $row[folder]; $thumb = $row[thumb]; $address = $row[address]; $city = $row[city]; $state = $row[state]; $zip = $row[zip]; $contact_id = $row[contact_id]; $name = $row[name]; if(strlen($description) > 150) { $description = substr($row[description], 0, 150).'...'; } $type = $row[type]; if ($c % 2 == 0) { $bg = "bgcolor=lightgrey"; } else { $bg = 'bgcolor=white'; } echo "<tr $bg>\n <td><input type=checkbox name=omit value=$id>Omit<br> <a href='$PHP_SELF?id=$id'><img src='$folder/thumbs/$thumb'></a></td>\n <td>$loc_name<br>$address<br>$city, $state $zip</td>\n <td>$name</td></tr>"; } echo "<tr bgcolor=black><td colspan=4><font color=red>"; echo "Count of results: $numrows, contents of to_omit: $to_omit"; echo "</font></td></tr> <tr><td colspan=4><input type=submit name=submit value=refine> <input type=reset name=reset value=reset></td></tr> </table><input type=hidden name=query value='$query'></form>"; echo "</td></tr>"; //debug: // echo "<h2>Query:</h2><pre>$query</pre><br>"; } else { //end form handling, below is main search form bookmark //debug: //echo $query; ?> <h2>Start Page - Search Interface:</h2> Intended for in-house use at location library.<br> <font color=white>Click Submit to find all records, or enter search terms in the boxes.</font> <form name="theForm" method=post action="<?php echo $PHP_SELF; ?>"> <input type=hidden name=query value='<?php echo $query; ?>'> <input type=hidden name=search value=true> <div align="center"> <div align="center"> <table width="450" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="152" bgcolor="#C9BB7B" valign="top" background="images/bg-menu.gif"> <p> <a href='javascript:document.theForm.submit(document.theForm.rci.value="");'>All</a></p> <p><a href='javascript:document.theForm.submit(document.theForm.rci.value="Intersection");'>Intersection</a></p> <p><a href='admin/'>Admin</a></p> <p><a href='javascript:document.theForm.submit(document.theForm.rci.value="Residential");'>Residential</a></p> <p><a href='javascript:document.theForm.submit(document.theForm.rci.value="Commercial");'>Commercial</a></p> <p><a href='javascript:document.theForm.submit(document.theForm.rci.value="Industrial");'>Industrial</a></p> <p><a href='docs/'>Help/Documentation</a></p> <p> </p> </td> <td width="432" bgcolor="#FFCC66"> <table width="394" border="0" align="center"> <tr> <td align="right">Zone (rci):</td> <td> <select name="rci"> <option value=''>Select Type</option> <?php $res = mysql_query("select distinct rci from locations", $db); while ($myrow = mysql_fetch_array($res)) { echo "<option value=\"$myrow[0]\""; if($rci=="$myrow[0]") echo " selected"; echo ">".$myrow[0]."</option>\n"; } ?> </select> </td> </tr> <tr> <td align="right">Type:</td> <td> <input type="text" name="type" value="<?php echo $row[type]; ?>"> </td> </tr> <tr> <td align="right" height="25">Description:</td> <td height="25"> <input type="text" name="description" value="<?php echo $row[description]; ?>"> </td> </tr> <tr> <td align="right">Rooms:</td> <td> <input type="text" name="rooms" value="<?php echo $row[rooms]; ?>"> </td> </tr> <tr> <td align="right">Keywords (kw):</td> <td> <b> <input type="text" name="kw" value="<?php echo $row[kw]; ?>"> </b> </td> </tr> <tr> <td align="right">Address:</td> <td> <input type="text" name="address" value="<?php echo $row[address]; ?>"> </td> </tr> <tr> <td align="right">City:</td> <td> <input type="text" name="city" value="<?php echo $row[city]; ?>"> </td> </tr> <tr> <td align="right">State:</td> <td> <input type="text" name="state" value="<?php echo $row[state]; ?>"> </td> </tr> <tr> <td align="right">Zip:</td> <td> <input type="text" name="zip" value="<?php echo $row[zip]; ?>"> </td> </tr> <tr> <td align="right">Contact_id (id number from contact table):</td> <td> <input type="text" name="contact_id" value="<?php echo $row[contact_id]; ?>"> </td> </tr> <tr> <td align="right">phone:</td> <td> <input type="text" name="phone" value="<?php echo $row[phone]; ?>"> </td> </tr> <tr> <td align="right">Email:</td> <td> <input type="text" name="email" value="<?php echo $row[email]; ?>"> </td> </tr> </table> </td> </tr> </table> </div> </div> <p align="center"><br> <input type=submit value=submit name=go> <input type=reset name=reset value=Clear> </p> </form> <?php } ?> </body> </html> end script TIA, t -- PHP General Mailing List (http://www.php.net/) To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]