php - 如何在 PHP 中通过 while 循环检索数据

标签 php mysql while-loop

我正在循环查看 MySQL 结果,但遇到了问题。问题是只有我的第一个 if 语句正在执行。我的其余 if 语句返回空字符串。让我困惑的是:当我删除 while 循环中的第一个 if 语句时,下一个 if 语句将返回数据,但其下面的所有其他语句都不会。

这是我的相关代码:

// Get Addresses
$queryAddresses  = "SELECT * FROM contact_addresses WHERE contact_id = $contactID";
$resultAddresses = mysqli_query($dbc, $queryAddresses);
$numAddresses    = mysqli_num_rows($resultAddresses);

if ($numAddresses >= 1) {
    $address_labels = '';
    $addresses      = '';
    while ($address = mysqli_fetch_array($resultAddresses, MYSQLI_ASSOC)) {
        $address_labels .= $address['label'].'<br>';

        if (!empty($address['address'])) {
            $address = $address['address'].', ';
        } else {
            $address = '';
        }
        
        /* ALL OF THE IF STATEMENTS BELOW THIS LINE RETURN EMPTY STRINGS EVEN THOUGH THE INFORMATION IS STORED IN THE DATABASE.  */
        if (!empty($address['address_two'])) {
            $address_two = $address['address_two'].', ';
        } else {
            $address_two = '';
        }

        if (!empty($address['city'])) {
            $city = $address['city'].', ';
        } else {
            $city = '';
        }

        if (!empty($address['state'])) {
            $state = $address['state'].', ';
        } else {
            $state = '';
        }

        if (!empty($address['zip'])) {
            $zip = $address['zip'].', ';
        } else {
            $zip = '';
        }

        if (!empty($address['country'])) {
            $country = $address['country'].', ';
        } else {
            $country = '';
        }

        $addresses .= $address.''.$address_two.''.$city.''.$state.''.$zip.''.$country.'<br>';
    }
}

最佳答案

使用 $address = $address['address'].', '; 行,您将用新字符串替换 $address 数组并清除大批。尝试更改字符串变量名称:

    if (!empty($address['address'])) {
        $address_one = $address['address'].', ';
    } else {
        $address_one = '';
    }

    if (!empty($address['address_two'])) {
        $address_two = $address['address_two'].', ';
    } else {
        $address_two = '';
    }

    if (!empty($address['city'])) {
        $city = $address['city'].', ';
    } else {
        $city = '';
    }

    if (!empty($address['state'])) {
        $state = $address['state'].', ';
    } else {
        $state = '';
    }

    if (!empty($address['zip'])) {
        $zip = $address['zip'].', ';
    } else {
        $zip = '';
    }

    if (!empty($address['country'])) {
        $country = $address['country'].', ';
    } else {
        $country = '';
    }

    $addresses .= $address_one.''.$address_two.''.$city.''.$state.''.$zip.''.$country.'<br>';

关于php - 如何在 PHP 中通过 while 循环检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28956637/

相关文章:

php - 带参数的 Laravel 5 中间件

php - Opencart 重复 URL 关键字

c - 初学者 C - 尝试在数组填满时终止循环

c - 循环问题,while循环执行额外的迭代

ios - 从 Swift 中的文本框循环用户输入

php - 根据mysql数据在textarea中提供反馈信息

php - 从 PHP 中的字符串中删除短单词和字符

正在缓存的 MySql 查询

mysql - 我应该使用 sql COUNT(*) 还是使用 SELECT 来获取行并稍后计算行数

php - 为内部联接查询中的一个字段选择不同的值