0

クエリで配列を使用するいくつかの例を見てきましたが、私に役立つものを手に入れることができないようです...

チェックボックスから処理ページまでの選択されたアイテムの配列を使用し、それらをクエリで使用する必要があります。すべてのデータがライブであることに注意してください。チェックボックスのデータから、使用されている/またはクエリから必要なデータまでです。

最初の部分である query1 は、(チェックボックスから) 選択された配列の合計を計算し、2 番目の部分である query2 は、選択された配列からデータベースのすべてのデータを表示します。

誰でもこのクエリで私を助けることができますか? (アイテムが 1 つだけ選択されている場合、両方のクエリは正常に機能しますが、複数選択では機能しません) データ配列の名前は「interest」です。WHERE クエリで implode と IN 句を使用してみました:

<?php
$date = date("F-Y",$_SESSION[diesel_date]);
$matches = implode(',', $_POST[interest]);

include("../xxx.xxx");
$cxn = mysqli_connect($host,$user,$password,$dbname);
$query = "SELECT SUM(`diesel_qty`) d_q FROM `diesel` 
            WHERE MONTH(`diesel_date`)= MONTH( '$dd' )
            AND `diesel_vehicle_no` IN ('$matches') ";
$result = mysqli_query($cxn,$query);
    while($row = mysqli_fetch_assoc($result))
    {
    extract($row);
    echo "<h7>Total Diesel Filled during $dd is&nbsp;</h7><b>";
    print $d_q;
    echo "</b><h7>&nbsp;Litres.</h7><br><br>\n";
    }
?>
<?php
      include("../xxx.xxx");
$cxn = mysqli_connect($host,$user,$password,$dbname)
    or die ("Couldn't connect to server.");
$query = "SELECT
                  `diesel_date`, 
                  `diesel_time`, 
                  `location_id`, 
                  `company_id`, 
                  `diesel_vehicle_no`, 
                  `diesel_driver_name`, 
                  `diesel_qty`,
                  `diesel_feed_id` 
    FROM`diesel` 
    WHERE MONTH(`diesel_date`)= MONTH( '$dd' )
    AND `diesel_vehicle_no` IN ('$matches') 
    ORDER BY `diesel_date`";
$result = mysqli_query($cxn,$query)
    or die ("Couldn't execute query.");

echo "<table><br>
<tr>
 <th>DieselFillDate</th>
 <th>Time</th>
 <th>Location</th>
 <th>CompanyOwning Plant/Vehicle</th>
 <th>Plant/Vehicle No</th>
 <th>DriversName</th>
 <th>Quantity</th>
 <th>DieselFeed</th>
</tr>";
while($row = mysqli_fetch_assoc($result))
{
    extract($row);
    echo "<tr>\n
        <td width='100'>$diesel_date</td>\n
        <td>$diesel_time</td>\n
        <td>$location_id</td>\n
        <td>$company_id</td>\n
        <td>$diesel_vehicle_no</td>\n
        <td>$diesel_driver_name</td>\n
        <td>$diesel_qty</td>\n
        <td>$diesel_feed_id</td>\n
        </tr>\n";
}
echo "</table><br>";
?>
4

1 に答える 1

0

私は解決策を見つけました、多分これは似たような何かに苦しんでいる他の誰かを助けることができます。

最初に配列を変数に割り当てました...

$matches = $_POST[interest];

その後、交換しました...

$matches = implode(',', $_POST[interest]);

これとともに

$amf = implode("', '", array_keys($matches));

スクリプトで抱えていた問題は、変数が数値ではなく、そのための文字列であるため、implodeステートメントに「」を挿入する必要があったことです。これがコードで、これで完全に機能します。

<?php 
$date = date("F-Y",$_SESSION[diesel_date]); 
$amf = implode("', '", array_keys($matches));

include("../xxx.xxx"); 
$cxn = mysqli_connect($host,$user,$password,$dbname); 
$query = "SELECT SUM(`diesel_qty`) d_q FROM `diesel`  
        WHERE MONTH(`diesel_date`)= MONTH( '$dd' ) 
        AND `diesel_vehicle_no` IN ('$matches') "; 
$result = mysqli_query($cxn,$query); 
    while($row = mysqli_fetch_assoc($result)) 
    { 
    extract($row); 
    echo "<h7>Total Diesel Filled during $dd is&nbsp;</h7><b>"; 
    print $d_q; 
    echo "</b><h7>&nbsp;Litres.</h7><br><br>\n"; 
    } 
?> 
<?php 
  include("../xxx.xxx"); 
$cxn = mysqli_connect($host,$user,$password,$dbname) 
    or die ("Couldn't connect to server."); 
$query = "SELECT 
              `diesel_date`,  
              `diesel_time`,  
              `location_id`,  
              `company_id`,  
              `diesel_vehicle_no`,  
              `diesel_driver_name`,  
              `diesel_qty`, 
              `diesel_feed_id`  
    FROM`diesel`  
    WHERE MONTH(`diesel_date`)= MONTH( '$dd' ) 
    AND `diesel_vehicle_no` IN ('$matches')  
    ORDER BY `diesel_date`"; 
$result = mysqli_query($cxn,$query) 
or die ("Couldn't execute query."); 

echo "<table><br> 
<tr> 
 <th>DieselFillDate</th> 
 <th>Time</th> 
 <th>Location</th> 
 <th>CompanyOwning Plant/Vehicle</th> 
 <th>Plant/Vehicle No</th> 
 <th>DriversName</th> 
 <th>Quantity</th> 
 <th>DieselFeed</th> 
</tr>"; 
while($row = mysqli_fetch_assoc($result)) 
{ 
    extract($row); 
    echo "<tr>\n 
    <td width='100'>$diesel_date</td>\n 
    <td>$diesel_time</td>\n 
    <td>$location_id</td>\n 
    <td>$company_id</td>\n 
    <td>$diesel_vehicle_no</td>\n 
    <td>$diesel_driver_name</td>\n 
    <td>$diesel_qty</td>\n 
    <td>$diesel_feed_id</td>\n 
    </tr>\n"; 
} 
echo "</table><br>"; 
?> 
于 2012-09-19T13:56:48.653 に答える