私はユーザーがpgsqlクエリを生成するためにドロップダウンメニューを使用しています。しかし、これは完全に動作しますが、私は現在、複数の選択肢を使用するように変換しようとしています。私は2つの別々の問題に遭遇しました。私が複数を追加すると、それはもはやドロップダウンリストではなく、スクロールホイールのように振る舞います。注釈として、オプションは最初のdbクエリによって設定されます。私は複数のオプションを選択することができる午前-While私はpgsqlクエリでPHPの同じビット2つの問題を持っています
<select multiple name="userSite" class="form-dropdown validate[required]">
、クエリだけではなく、選択したオプションのすべての結果よりも、最初に選択を返しています。
ini_set('error_reporting', E_ALL);
ini_set("display_errors", 1);
$site= $_POST["userSite"];
$datea= $_POST["userDatea"];
$table= $_POST["userTable"];
$datez= $_POST["userDatez"];
// You need to do all of this if and only if this is a post request
// Also this method of detecting a post request is more consistent
if(!empty($_SERVER['REQUEST_METHOD']) && (strcasecmp($_SERVER['REQUEST_METHOD'], 'post')===0) ) {
// Create connection
$conn = pg_connect("host=xxxxxxxxxx port=xxxx dbname=db user=xxx password=mypassword");
// Check connection
if (!$conn) {
echo "Did not connect.\n";
exit;
}
$result = pg_query($conn,
"SELECT *
FROM
db.$table
WHERE
$table.site_id = '$site' AND
$table.created_on BETWEEN '$datea' AND '$datez' AND
$table.soft_delete_id = '0';");
if (!$result) {
echo "Query failed.\n";
exit;
}
$num_fields = pg_num_fields($result);
$headers = array();
for ($i = 0; $i < $num_fields; $i++)
{
$headers[] = pg_field_name($result , $i);
}
$fp = fopen('php://output', 'w');
if ($fp && $result)
{
header('Content-Type: text/csv');
header('Content-Disposition: attachment; filename="customreport.csv"');
header('Pragma: no-cache');
header('Expires: 0');
fputcsv($fp, $headers);
while ($row = pg_fetch_row($result))
{
fputcsv($fp, array_values($row));
}
die;
}
exit('It works');
}
は、ご返信いただきありがとうございます。私はあなたがやっていることを理解していますが、 "implode"との切断があるようです...私は[]で名前属性を設定しましたが、投稿を送信するときに次のエラーが発生します... – KevMoe
implode()[ function.implode]:引数は、行24の/home2/rightme1/public_html/networks/gsreports/custom.phpの配列である必要があります – KevMoe
不足しているパラメータを修正しました。 –