簡體   English   中英

While循環中的If語句

[英]If Statement within While Loop

我編寫了一些代碼,以縮短名稱(如果名稱過多)(縮短名字的首字母縮寫,刪除中間名,如果姓氏太長則縮短直到適合)。

我有此版本的工作(在當前代碼后發布),但是現在我嘗試了一些while循環,但它抱怨第一個意外{在循環中(第9行)。

當前代碼:

<?php
$name = "billy bobby sharkingflardo herdaderpingtonning";       

        while ((strlen($name))>17)
            {
            $nameEx = explode(" ",$name);

            if ((strlen($nameEx[0])>1)
                {
                $nameEx[0] = substr($nameEx[0], 0, -(strlen($nameEx[0])-1));
                }

            while ((count($nameEx))>2)
                {
                unset($nameEx[1]);
                }

            if ((strlen($nameEx[1]>15))
                {
                substr($nameEx[1], 0, -1);
                }
            $name = implode(" ",$nameEx);       
            }

        echo $Name
?>

我對PHP還是很陌生,但是我沒有發現任何問題,除非在某些情況下無法在while循環中放置,但是從進行一些研究后,我發現情況並非如此。

我正在工作的舊代碼如下:

<?php
$conn = mysql_connect('localhost', 'root', '');
mysql_select_db('amazondb', $conn); 
$result = mysql_query("SELECT * FROM imported_orders");

while($row = mysql_fetch_array ($result))
{
    $nL = strlen($row['RecipientName']);
    echo "<br><b>Name:</b> ".$row['RecipientName']."<br>";
    echo "<b>Names Length:</b> ".$nL."<br>";

    if ($nL>17)
    {
        $nameEx = explode(" ",$row['RecipientName']);
        if ((count($nameEx))>2)
        {
            unset($nameEx[1]);
            $nameEx[0] = substr($nameEx[0], 0, -(strlen($nameEx[0])-1));
        }
        $name = implode(" ",$nameEx);
        echo "<b>New Name:</b> ".$name."<br>";
        echo "<b>New Length:</b> ".strlen($name)."<br>";        
    }

}

?>

這段代碼可以與我的sql數據庫一起使用,但是它沒有考慮多個中間名以及姓氏本身是否太長。

我確定這一定與while循環有關,但不知道要做什么。

任何幫助,不勝感激,謝謝。

除了功能之外,您的代碼還充滿語法錯誤和不必要的括號。 嘗試這個:

$name = "billy bobby sharkingflardo herdaderpingtonning";

while (strlen($name) > 17) { // removed extra parentheses around strlen()
    $nameEx = explode(' ', $name);

    if (strlen($nameEx[0] > 1)) { // removed extra and fixed unclosed parentheses
        $nameEx[0] = substr($nameEx[0], 0, -(strlen($nameEx[0]) - 1));
    }

    while (count($nameEx) > 2) { // removed extra and fixed unclosed parentheses
        unset($nameEx[1]);
    }

    if (strlen($nameEx[1] > 15)) { // removed extra and fixed unclosed parentheses
        substr($nameEx[1], 0, -1);
    }

    $name = implode(' ', $nameEx);
}

echo $Name; // added missing semicolon

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM