0

スクリプトのどこかに問題がありますが、どこが間違っているのか正確にはわかりません。コードは次のとおりです。

<title>Log</title>
</head>

<h1> Log </h1>

<form method="get" action="getlog.php"> 

<table width="300" border="0">
  <tr>
    <td> Forte ID:</td>
    <td><select id="ForteID" name="ForteID">                    
                    <option value="nc4682">nc4682</option>
                    <option value="bs1441">bs1441</option>
                    <option value="sp3212">sp3212</option>                 
        </select></td>
  </tr>
</table>

 <input type="submit" name="getLog" value="Get Log">
 </form> 

</head>

<body>
</body>
</html>
<?php
/*print_r($_POST);*/
$serverName = 'SRB-Nick_Desktop\SQLEXPRESS';
$connectionInfo = array('Database'=>'cslogs', 'UID'=>'cslogslogin', 'PWD'=>'123456');
$connection = sqlsrv_connect($serverName, $connectionInfo);

$query = 'SELECT    ForteID, Disposition, appNumber, Finance_Num, Num_Payments, ACH_CC,     Notes from logs';

$result = sqlsrv_query($connection,$query);

if (!$result) 
{
    $message = 'ERROR: ' . sqlsrv_errors();
    return $message;
}
else
{
    $i = 0;
    echo '<html><body><table><tr>';
    while ($i < sqlsrv_num_rows($result))
    {
        $meta = sqlsrv_fetch($result, $i);
        echo '<td>' . $meta->name . '</td>';
        $i = $i + 1;
    }
    echo '</tr>';

    while ( ($row = sqlsrv_fetch_array($result))) 
    {
        $count = count($row);
        $y = 0;
        echo '<tr>';
        while ($y < $count)
        {
        $c_row = current($row);
        echo '<td>' . $c_row . '</td>';
        next($row);
        $y = $y + 1;
    }
    echo '</tr>';
}
sqlsrv_free_stmt ($result);

echo '</table></body></html>';
}
sqlsrv_close( $connection);
?>

ドロップダウンボックスで何が選択されていても、ログを取得するボタンを押しても、これが結果になります。

nc4682 nc4682 Save Save asdf asdf fdas fdas 1 1 cc cc asdf asdf bs1441 bs1441 LOC LOC AN00336862 AN00336862 None None 0 0 ach ach Backout Backout nc4682 nc4682 Save Save AN00336862 AN00336862 easdf easdf 2 2 ach ach asdf asdf sp3212 sp3212 Sale Sale NCXXXXXX1 NCXXXXXX1 none none 1 1 cc cc asdfasdfasdf asdfasdfasdf

各列が複製されます。7つの列があるはずです。

4

2 に答える 2

0

sqlsrv_fetch_array()デフォルトでは、数値配列と連想配列の両方を返します。

1 つのタイプの配列のみを指定してみてください

while ( $row = sqlsrv_fetch_array( $result, SQLSRV_FETCH_ASSOC ))

クエリで dropdpwn を使用するには。

$query = 'SELECT    ForteID, Disposition, appNumber, Finance_Num, Num_Payments, ACH_CC,     Notes FROM logs WHERE ForteID =' . $_GET['ForteID'];

$_GET 変数をサニタイズしないと、このクエリは SQL インジェクションに対して脆弱になることに注意してください。

于 2012-11-06T20:30:33.617 に答える
0

ドロップダウン リストからの結果のみを表示するには、SQL ステートメントの末尾に WHERE ForteID = {$_GET['ForteID']} のようなものを追加します。

于 2012-11-06T20:42:19.703 に答える