如何计算while语句运行php和sql的次数

时间:2013-10-10 13:08:50

标签: php sql count while-loop

您好我想知道我的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";
                }   
            ?>  

6 个答案:

答案 0 :(得分:1)

您可以将变量放入。 它为每个循环递增其值(您可以使用for语句而不是while语句,因此您可以释放计数器变量)。

如果您需要了解迭代的每个结果,请在循环结束时输出一个输出命令,以在屏幕上显示您想要的结果。

我希望我完成你的任务。祝你有愉快的一天;)

答案 1 :(得分:1)

$i = 0;

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>";

        }   
    $i++;
}

echo $i;

答案 2 :(得分:0)

只需在while循环之前声明一个变量($ inc = 0;)并在循环中将其递增($ inc ++;)。现在可以使用此变量来获取while循环运行的计数。

答案 3 :(得分:0)

使用此:

$a=0

while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) 
{
      $a=$a+1;
}
echo "you have {$a} records"

答案 4 :(得分: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;

作为顶部的声明,而不是每次调用的代码。

答案 5 :(得分: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将在每个循环中递增一次