2つのバージョンのデータを表示したいフォームがあります。これに2つの変数を設定できることは知っていますが、postgresデータベースに挿入する方法がわかりません。データを入力し、テーブルに挿入するための新しい番号を入力するためのラベルを取得しました。
これが私がこれまでに持っているものです...
<script>
window.onload = function() {
<?
$yesterday = date('Y-m-d', strtotime('-1 day'));
if ($_REQUEST['start'] == '') {
$_REQUEST['stores'] = array(1,2,3,7,8,9,17,18,19,23,16,11,4,5,6);
$_REQUEST['start'] = $yesterday;
} else {
$_REQUEST['stores'] = array(1,2,3,7,8,9,17,18,19,23,16,11,4,5,6);
}
$_REQUEST['submit'] = 'Get Data';
?>
}
</script>
<?
// various arrays and db connections we're going to need later
include('/home/...some_data_goes_here.../db_connect.inc');
$dbx = DB::connect('******');
$dbx->setFetchMode(DB_FETCHMODE_ASSOC);
//get the data based on the date.
$start = $_REQUEST['start'];
//$stores = array(1 => '1,177,18', 2 => '2,277,28', 3 => '3,377,38', 7 => '4,477,48', 8 => '5,577,58', 18 => '338', 19 => '50,51', 9 => '6,677,68', 17 => '8,877,818', 16 => '44,45,47', 11 => '7,770,78', 4 => '11,15,17', 5 => '22,25,27', 6 => '33,35,37');
$formstores = $_REQUEST['stores'];
foreach($stores as $sid => $pcs) {
$store_name = $db->getOne('SELECT store_name FROM stores WHERE store_id = ?', array($sid));
}
foreach($formstores as $k => $sid) {
if(empty($storeDataMain)){ //array is empty so make one
$storeDataMain = array();
}
//get the store names
$store_name = $db->getOne('SELECT store_name FROM stores WHERE store_id = ?', array($sid));
if(DB::isError($store_name)) { echo '<div class="error">Error '.$store_name->getdebuginfo().'</div>'; return; }
$tempups = $db->getOne('SELECT sum(count) FROM traffic WHERE store_id = ? AND tdate = ?', array($sid,$start));
//echo $tempups .' | ';
if(DB::isError($tempups)) { echo '<div class="error">Error '.$tempups->getdebuginfo().'</div>'; return; }
$tups = $tempups/2;
//echo $tups;
//Build array out and return it
$storeDataMain[$store_name] = array('trafficGuests' => number_format(floatval($tups),1,'.',',')); // floatval prevents the numbers from rounding to zero
}
?>
<h3 class="heading">Traffic Updates</h3>
<p>Enter dates in yyyy-mm-dd format.</p>
<script type="text/javascript" src="/css/prototype.js"></script>
<script type="text/javascript" src="/css/scriptaculous.js"></script>
<script type="text/javascript" src="/css/datepicker.js"></script>
<form name="setTraffic" method="get" action="/traffic/updateTraffic.php">
<!-- Build the table where they can input the date to be changed -->
<table>
<tr>
<th>Date</th>
</tr>
<tr>
<td>
<input type="text" name="start" id="start" value="<?=$_REQUEST['start']?>" alt="mm/dd/yyyy" onblur="if(this.value.length){valid=check_date(this.value);if(!valid){this.value='';this.focus();alert('Invalid date input');}else{this.value=valid;}}" onchange="if(this.value.length){valid=check_date(this.value);if(!valid){this.value='';this.focus();alert('Invalid date input');}else{this.value=valid;}}" onfocus="if(this.value == this.defaultValue) this.value = ''" /></td>
<script type="text/javascript">
var start_picker = new DatePicker({
relative : 'start',
language : 'en',
dateFormat : 'yyyy-mm-dd',
showDuration: 0.1,
closeEffectDuraction: 0.1,
disableFutureDate: true,
disablePastDate: false,
keepFieldEmpty : true
});
</script>
</td>
</tr>
</table>
<input class="button" type="submit" name="submit" value="Get Data" id="submit" />
</form>
<form method="post" action="">
<table>
<tr>
<th style="height: 20px; width: 165px; vertical-align: bottom;">Stores</th>
<? //build the list of stores for the headers.
foreach($storeDataMain as $k => $val){
echo '<th style="text-align: center; vertical-align: bottom;">'.$k.'</th>';
}
?>
</tr>
<tr>
<th style="height: 20px; vertical-align: bottom;">Guests for <?=$start?> </th>
<? //format and print out the traffic for each store
foreach($storeDataMain as $k => $val){
echo '<td style="text-align: center; vertical-align: bottom; font-size: 14px;">'.$val["trafficGuests"].'</td>';
}
?>
</tr>
<tr>
<th style="height: 20px; vertical-align: bottom;">Adjustment for <?=$start?></th>
<? //build the input fields identified based on store id.
foreach($formstores as $pcs) {
echo '<td><input class="newTraffic" type="number" style="width: 65px; text-align: right;" name="new_count" id="'.$pcs.'" value="'.$count.'" />'.$count.'</td>';
<script>// get the data ready for inserting into the database
if(isset($count)){
$count = $_POST['']
} else {
$count = '';
}}
if( $_POST ){
$count = $_POST["count"];
$store_id = $sid
$insertCounts = $db->query('INSERT INTO traffic (store_id, thour, tdate, count, door) VALUES ('$sid', )');
}
}
</script>
}
?>
</tr>
</table>
<input class="button" type="submit" name="submit2" value="Submit" id="submit" />
</form>
<h5 style="color: #707070;">New Traffic Counts</h5>
<table style="color: #707070;">
<tr>
<td style="height: 20px; width: 165px; font-weight: bold; vertical-align: bottom;">Stores</td>
<? //display the list of stores for the output of the new counts.
foreach($storeDataMain as $k => $val){
echo '<td style="text-align: center; width: 69px; padding: 4px; font-weight: bold; vertical-align: bottom;">'.$k.'</td>';
}
?>
</tr>
<tr>
<td style="height: 20px; vertical-align: bottom; font-weight: bold;">Guests for <?=$start?></td>
<? //format and display the NEW traffic for each store
foreach($storeDataMain as $k => $val){
$newCount = $val["trafficGuests"] + $count[$pcs];
echo '<td style="text-align: center; vertical-align: bottom; font-size: 14px;">'.$newCount.'</td>';
}
?>
</tr>
</table>
</form>
ページがどのように表示されるかを確認したい場合は、[こちら](https://picasaweb.google.com/105736785937866961668/January22013#5828892865441021874)にアクセスして、入力が数値の調整を取り入れるように設計されているかどうかを確認してください。それはポジティブかネガティブかです。そこからDBテーブルに挿入され、既存の合計に追加されて、新しい合計が下部の灰色のテーブルに反映されるようになります。
これは達成できない可能性があることを私は知っていますが、それができない場合は、データがまだテーブルに入力され、送信後に反映されるポイントに到達できる必要があります。コードに関する既存の知識では、そこにたどり着くことができないようです。
助けてください?!