私の目標は、PHPフォームの変数としてHTMLフォームから選択された複数のオプションを投稿することです。大括弧を使用して配列として選択タグIDを設定すると、複数の選択肢を渡すことができるはずですが、私の懸念は、クエリが配列としてデータを認識するようにフォーマットされていないことです。現在の結果には、最後に選択したオプションの回答のみがポストから表示されます。postgresクエリで配列を渡さない投稿
フォームから選択タグがあります(別のクエリによって設定されていることに注意してください。誰かがここでメニュー変数に書式を追加する方法を述べる可能性があります)... 'COMM_0001 %」、 'COMM_0002の%' など:
<select multiple name="userMedia" class="form-control" id="userMedia[]"
style="height:350px;">
<?php
$conn = pg_connect("database login data deleted");
if (!$conn) {
echo "Did not connect.\n";
exit;
}
$sql = "SELECT medias.name FROM public.medias where medias.startdate > '2015-01-01'";
$rs = pg_query($conn, $sql);
if (pg_num_rows($rs) > 0) {
// output data of each row
while($row = pg_fetch_assoc($rs)) {
$menu .= "<option value=".$row['name'].">" . $row['name']. "</option>";
}
}
echo $menu;
pg_close($conn);
?>
</select>
ここでは、このデータは、に掲載されることをクエリがある...
$datea= $_POST["userDatea"];
$media= $_POST['userMedia'];
$datez= $_POST["userDatez"];
if(!empty($_SERVER['REQUEST_METHOD']) &&
(strcasecmp($_SERVER['REQUEST_METHOD'], 'post')===0) ) {
// Create connection
$conn = pg_connect("Connect Info Deleted");
// Check connection
if (!$conn) {
echo "Did not connect.\n";
exit;
}
$result = pg_query($conn,
"SELECT
date (b.starttime),
Count(b.starttime) as Plays,
Count(distinct(b.playerid)) as Stores
FROM
public.billing b,
public.medias m,
public.players p
WHERE
b.mediaitemid = m.id and
p.id = b.playerid and
m.name LIKE any (array['$media%']) and
b.starttime >= date('$datea') and
b.starttime < date('$datez')+1 and
m.startdate > '2015-01-01'
GROUP BY
date (b.starttime)
ORDER BY
date (b.starttime);");
if (!$result) {
echo "Query failed.\n";
exit;
}
ありがとうございます、これは正しい方向に動いているようです...しかし、コード内のどこに行くのか説明できますか? – KevMoe
'$ media = $ _POST ['userMedia'];'と '$ result = pg_query(...)'の間のどこでも – Barmar