質問をした後、私は自分の誤りに気づき、未回答の質問を避けるために詳しく説明したいと思います. テーブルのクエリ方法を決定するために、いくつかの PHP if ステートメントが存在します。各 if ステートメント内には、元の質問で説明されているように、クエリ対象のテーブルをダウンロードするステートメントが埋め込まれています。ただし、何も照会されない場合、ユーザーが要求した場合にダウンロードを処理するステートメントはありません。これは、アプリケーション全体の機能をチェックする際に頭を悩ませていました。
誰かが興味を持っている場合は、ここに完全なコードがあります。
<form action = "" method = "post">
Hypo File: <select name="hfile">
<?php
$dir = "/Applications/MAMP/db/mysql/IESE";
$hypo_files = scandir($dir, 1);
$i = 0;
while($i <= count($hypo_files) - 4) {
echo "<option value = $hypo_files[$i]> $hypo_files[$i] </option>";
$i = $i + 1;
}
?>
</select>
<br><br>
<fieldset>
<legend>Hypo Query:</legend>
<br>
Min Value: <input type = "text" name = "min_value">
<!-- NOTE the names are named in relation to the col_name fields i.e. col names is greater than the field to the left and less than field to the right. -->
<input type="radio" name="greater_than" value= ">="> <=
<input type="radio" name="greater_than" value= ">"> <
<!-- THIS IS THE DROP DOWN BOX FORM! (and an html comment) -->
<select name="hypo_cols">
<option value="latitude_deg">latitude deg</option>
<option value="longitude">longitude</option>
<option value="depth">depth</option>
<option value="origin_time">origin time</option>
<option value="magnitude">magnitude</option>
<option value="maximum_azimuthal_gap">max azimuthal gap</option>
<option value="distance_to_nearest_station_km">distance to nearest station km</option>
<option value="rms_travel_time_residual">rms travel time residual</option>
<option value="version">version</option>
<option value="auxiliary_remark_from_program">auxiliary remark from program</option>
</select>
<input type="radio" name="less_than" value = "="> ==
<input type="radio" name="less_than" value= "<="> <=
<input type="radio" name="less_than" value= "<"> <
Max/Equal to Value: <input type = "text" name = "max_value"> <br> <br>
</fieldset>
<div id="forum_options">
<!-- THIS IS THE CHECKBOX TO DISPLAY HYPO TABLE -->
<input type ="checkbox" name="display_table" value="display"> Print Queried Table
<input type ="checkbox" name="display_map" value="map"> Print Map from Query
<input type ="checkbox" name="download_table" value="download"> Download Queried Table <br> <br>
<div id="submit">
<input type = "submit" value="Submit" name="submit_query">
<input type=button value="Refresh" onClick="window.location.reload()">
</div>
</div>
</form>
<?php
// What are we going to do once the submit button is pressed?
if(isset($_POST["submit_query"]))
{
//Lets define all the form values as $ without GET/POST. Seems to read better in the query further below.
$hfile = $_POST['hfile'];
$min_value = $_POST['min_value'];
$greater_than = $_POST['greater_than'];
$hypo_cols = $_POST['hypo_cols'];
$less_than = $_POST['less_than'];
$max_value = $_POST['max_value'];
$display_table = $_POST['display_table'];
$display_map = $_POST['display_map'];
$download_table = $_POST['download_table'];
//DEFINE and POPULATE the TABLE with $hfile. This is the only bit that is done no matter what else the form says!
$load_hypo_param = "LOAD DATA INFILE '/Applications/MAMP/db/mysql/IESE/$hfile' INTO TABLE hypo FIELDS TERMINATED BY ','";
mysql_query($load_hypo_param ) or die(mysql_error());
}
//a
if($less_than == "=")
{
//echo "part a successful. <br>";
$result1 = mysql_query("SELECT * FROM hypo WHERE $hypo_cols $less_than $max_value") or die(mysql_error());
//Lets download(?) the table (if the download checkbox is on)
if(isset($download_table)) {
$file = "query.txt";
unlink("/Applications/MAMP/db/mysql/IESE/query.txt");
mysql_query("SELECT * FROM hypo WHERE $hypo_cols $less_than $max_value INTO OUTFILE \"$file\" FIELDS TERMINATED BY ','") or die(mysql_error());
}
}
//b
else if($min_value != NULL and $max_value != NULL) //isset($min_value) and isset($max_value))
{
//echo "part b successful" . "<br>" ;
$result1 = mysql_query("SELECT * FROM hypo WHERE $hypo_cols BETWEEN $min_value AND $max_value") or die(mysql_error());
if(isset($download_table)) {
$file = "query.txt";
unlink("/Applications/MAMP/db/mysql/IESE/query.txt");
mysql_query("SELECT * FROM hypo WHERE $hypo_cols $less_than $max_value INTO OUTFILE \"$file\" FIELDS TERMINATED BY ','") or die(mysql_error());
}
}
//c
else if($min_value != NULL)
{
//echo "part c successful" . "<br>";
$result1 = mysql_query("SELECT * FROM hypo WHERE $hypo_cols $greater_than $min_value") or die(mysql_error());
if($download_table != NULL) {
$file = "query.txt";
unlink("/Applications/MAMP/db/mysql/IESE/query.txt");
mysql_query("SELECT * FROM hypo WHERE $hypo_cols $greater_than $min_value INTO OUTFILE '$file' FIELDS TERMINATED BY ','") or die(mysql_error());
}
}
//d
else if($max_value != NULL)
{
//echo "part d successful" . "<br>";
$result1 = mysql_query("SELECT * FROM hypo WHERE $hypo_cols $less_than $max_value") or die(mysql_error());
if(isset($download_table)) {
$file = "query.txt";
unlink("/Applications/MAMP/db/mysql/IESE/query.txt");
mysql_query("SELECT * FROM hypo WHERE $hypo_cols $less_than $max_value INTO OUTFILE \"$file\" FIELDS TERMINATED BY ','") or die(mysql_error());
}
}
else
{
echo "Nothing seems to be set. <br>";
$file = "query.txt";
unlink("/Applications/MAMP/db/mysql/IESE/query.txt");
mysql_query("SELECT * FROM hypo INTO OUTFILE \"$file\" FIELDS TERMINATED BY ','") or die(mysql_error());
$result1 = mysql_query("SELECT * FROM hypo");
$nothing_set=TRUE;
}
//echo all results.
if(!isset($nothing_set)) {
echo "<h4>" . "Query successful and involves:" . "<br>" . "$hypo_cols " . "$greater_than " . "$min_value " . "<br>" . "$hypo_cols " . "$less_than " . "$max_value" . "<br>" . "</h4>";
}
//Lets print the map (if the print map checkbox is on)
if(isset($display_map)) {
//lets create a string of lat long values from the result1 queried table.
?>