2017-11-23 1 views
0

/PHPのSQLクエリこのコードは動作しますが、私はこの「警告を取得なぜ1はbelowsのエラーAND-- --withHTML句

if(isset($_POST['month'])=='') 
{ 
     $sql = ('SELECT 
     substring(pin,5,2) as District, 
     count(arpn) as RPU, 
     sum(area) as AREA, 
     sum(marketvalue) as MV, 
     sum(assessedvalue) as AV 
     FROM 2017_oct_land 
     WHERE taxability= "T" 
     group by District ASC'); 
     foreach ($pdo->query($sql) as $row) { 
      echo '<tr>'; 
      echo '<td>'. $row['District'] . '</td>'; 
      echo '<td class="RPU">'. $row['RPU'] . '</td>'; 
      echo '<td class="AREA">'. $row['AREA'] . '</td>'; 
      echo '<td class="MV">'. $row['MV'] . '</td>'; 
      echo '<td class="AV">'. $row['AV'] . '</td>'; 
     } 
include 'total.php'; 
} 

を示しています。無効な引数がforeachのために供給されます( )in C:\ wamp64 \ www \ reportview \ pages \ code2.php 20行目 "このコードは?

if(isset($_POST['month'])!=NULL) 
{ 

$kind = $_POST['kind']; 

echo "MONTH : ".$kind."<br/>"; 
$sql = ('SELECT 
     substring(pin,5,2) as District, 
     count(arpn) as RPU, 
     sum(area) as AREA, 
     sum(marketvalue) as MV, 
     sum(assessedvalue) as AV 
     FROM julcons 
     WHERE taxability="T" and actualuse like "' . $kind .'"'); 

     foreach ($pdo->query($sql) as $row) { 
      echo '<tr>'; 
      echo '<td>'. $row['District'] . '</td>'; 
      echo '<td class="RPU">'. $row['RPU'] . '</td>'; 
      echo '<td class="AREA">'. $row['AREA'] . '</td>'; 
      echo '<td class="MV">'. $row['MV'] . '</td>'; 
      echo '<td class="AV">'. $row['AV'] . '</td>'; 
     } 
include 'total.php'; 
} 
+0

これは間違っているので、準備文を使用してください。私にあなたを修正する分を私に与えてください... – ArtisticPhoenix

答えて

0

はここに行く(未テスト)が、

if(isset($_POST['kind'])) { 
    //why check month and then use kind? which is it.. 
    //isset returns boolean, not null, null works because it's false but it's not correct IMO 

    $kind = $_POST['kind']; //what is this kind or month 

    echo "MONTH : ".$kind."<br/>"; 
    $sql = 'SELECT 
     substring(pin,5,2) as District, 
     count(arpn) as RPU, 
     sum(area) as AREA, 
     sum(marketvalue) as MV, 
     sum(assessedvalue) as AV 
     FROM julcons 
     WHERE taxability="T" and actualuse like :kind'; 

     $stmt = $pdo->prepare($sql); 
     $stmt->execute([':kind' => $kind]); 

     while(false !== ($row = $stmt->fetch(PDO::FETCH_ASSOC))){ 
      echo '<tr>'; 
      echo '<td>'. $row['District'] . '</td>'; 
      echo '<td class="RPU">'. $row['RPU'] . '</td>'; 
      echo '<td class="AREA">'. $row['AREA'] . '</td>'; 
      echo '<td class="MV">'. $row['MV'] . '</td>'; 
      echo '<td class="AV">'. $row['AV'] . '</td>'; 
     } 
include 'total.php'; 
} 

申し訳近づける必要がありますが、あなたはあなたのコード内のいくつかの本当に大きなミスをしていました。

+0

こんにちは@artisticPhoenix!懸念していただきありがとうございます。私は月と種類という2つのドロップダウンメニューを持っています。 kindはワイルドカード '%'を含む値を持っています。ユーザーは月と種類を選択する必要があります。ありがとう! – scarredscarlet

+0

@scarredscarlet - よくPrepared statementsについての私のアドバイスを取ってください。この文章では、 "taxability = 'T'とmonth = $ _ post ['month']とactualuse = $ _ POST ['kind'それ以外の場合、ハッカーはあなたのデータベースを所有します。 – ArtisticPhoenix