2

こんにちは、while ステートメントが実行された回数を調べようとしていますが、これを行う方法がわかりません。これを知る必要がある理由は、画面に出力された行数を確認し、メッセージを表示することです。番号が見つかったら画面に。私のコードはかなり長いです。英語が下手で申し訳ありませんが、よろしくお願いします。

<?php
            try {
                    $serverName = "127.0.0.0.0";
                    $connectionInfo = array( "Database"=>"database", "UID"=>"uid", "PWD"=>"pwd");
                    $conn = sqlsrv_connect( $serverName, $connectionInfo );
                    if( $conn === false ) 
                    {
                        die( print_r( sqlsrv_errors(), true));
                    }
                    $sql = "SELECT TOP 10 [company]
                            ,[partnum]
                            ,[description]
                            FROM [database].[uid].[table]
                            WHERE Part.partnum LIKE ? or Part.description LIKE ?";          
                    /* Set parameter values. */
                    $params = array(  "%" . str_replace(" ","%",$_POST["part"] ). "%", "%" . str_replace(" ","%",$_POST["part"] ) . "%");

                    $x = true;
                    /*echo print_r($params, true);*/
                    $stmt = sqlsrv_query( $conn, $sql, $params );

                    if( $stmt === false) 
                    {
                        die( print_r( sqlsrv_errors(), true) );
                    }

                    while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) 
                    {

                        if($x == true)
                        {               
                        echo"<form action=\"locations.php\" method=\"post\">";
                            echo"<input type=\"hidden\" name=\"part\" id=\"3\" value=\"".$row['partnum']."\">";
                            echo"<input type=\"hidden\"  name=\"lon1\" id=\"1\" value=\"".$_POST["lon1"]."\">";
                            echo"<input  type=\"hidden\" name=\"lat1\" id=\"2\" value=\"".$_POST["lat1"]."\">";
                        echo"<button type=\"submit\">";
                        echo "<div style=\"font-family:verdana;font-weight:bold;color:#3083FF;font-size:20px;width:100%;text-align:center;margin:0; padding:0;\">";
                                echo $row['partnum']."<br/>";
                        echo "</div>";  
                                echo"<img style=\"width:50%;\"; src=\"productimages/".$row['partnum'].".jpg\" alt=\"Save icon\" onError=\"this.src='productimages/noimage.jpg'\"/>";
                        echo "<div style=\"font-family:verdana;color:#3083FF;font-size:20px;width:100%;text-align:center;margin:0; padding:0;\">";
                                echo $row['description'];
                        echo "</div>";
                        echo"</button>";
                        echo"</form>";

                            }   

                    }

                    sqlsrv_free_stmt( $stmt);
                }   catch (Exception $e) 
                {
                    echo 'Caught exception: ',  $e->getMessage(), "\n";
                }   
            ?>  
4

6 に答える 6

1

while には変数を入れることができます。ループごとに値をインクリメントします (while ステートメントの代わりに for ステートメントを使用できるため、カウンター変数を解放できます)。

反復のすべての結果を知る必要がある場合は、ループの最後に出力コマンドを配置して、必要な結果を画面に表示してください。

私はあなたの仕事を達成することを願っています。良い1日を ;)

于 2013-10-10T13:11:29.743 に答える
0
$x = 0;

while($row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC))
{
  $x++; //$x is now how many times this loop has run.
        //eg when it's set to 2 this is the 2nd time
        //the while loop has ran

  // Rest of your code here
}

これが必要です。$xループごとに 1 ずつインクリメントされます

于 2013-10-10T13:25:25.247 に答える
0

while loop like($inc=0;) の前に 1 つの変数を宣言し、while loop like($inc++;) 内でインクリメントするだけです。これで、この変数を使用して while ループの実行回数を取得できます。

于 2013-10-10T13:16:42.580 に答える
0
                $whileCounter = 1;

                while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) 
                {

                    if($x == true)
                    {               
                    echo"<form action=\"locations.php\" method=\"post\">";
                        echo"<input type=\"hidden\" name=\"part\" id=\"3\" value=\"".$row['partnum']."\">";
                        echo"<input type=\"hidden\"  name=\"lon1\" id=\"1\" value=\"".$_POST["lon1"]."\">";
                        echo"<input  type=\"hidden\" name=\"lat1\" id=\"2\" value=\"".$_POST["lat1"]."\">";
                    echo"<button type=\"submit\">";
                    echo "<div style=\"font-family:verdana;font-weight:bold;color:#3083FF;font-size:20px;width:100%;text-align:center;margin:0; padding:0;\">";
                            echo $row['partnum']."<br/>";
                    echo "</div>";  
                            echo"<img style=\"width:50%;\"; src=\"productimages/".$row['partnum'].".jpg\" alt=\"Save icon\" onError=\"this.src='productimages/noimage.jpg'\"/>";
                    echo "<div style=\"font-family:verdana;color:#3083FF;font-size:20px;width:100%;text-align:center;margin:0; padding:0;\">";
                            echo $row['description'];
                    echo "</div>";
                    echo"</button>";
                    echo"</form>";
                    $whileCounter++;
                    echo $whileCounter;
                        }   
                }

数回の while ループの後で合計カウントを表示するために中断したところからカウンターを開始する場合は、次のように入力します。

$whileCounter = 1;

毎回呼び出されるコードではなく、上部の宣言として。

于 2013-10-10T13:18:20.727 に答える
0

これを使って:

$a=0

while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) 
{
      $a=$a+1;
}
echo "you have {$a} records"
于 2013-10-10T13:17:15.193 に答える