如何通过 PHP 中的 while 循环检索数据
How to retrieve data via a while loop in PHP
我正在遍历 MySQL 结果,但 运行 遇到了问题。问题是只执行了我的第一个 if
语句。我的 if
语句的其余部分是 returning 空字符串。令我困惑的是:当我删除 while 循环中的第一个 if 语句时,下一个 if 语句将 return 数据但它下面的所有其他语句都不会。
这是我的相关代码:
// 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>';
while ($address = mysqli_fetch_array($resultAddresses, MYSQLI_ASSOC)) {
$address_labels .= $address['label'].'<br>';
if (!empty($address['address'])) {
$address = $address['address'].', ';
} else {
$address = '';
}
}
我在查看您的代码时发现,您对 while 循环和第一个 if 语句使用了相同的变量 $address
。尝试更改循环变量,比如 $result
并尝试
Plz paste following Code in your editor:
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "databasename";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT * FROM users";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
//echo "id: " . $row["id"]. " - Name: " . $row["first_name"]. " " . $row["last_name"]. "<br>";
$fnanem ="";
$lnanem ="";
if(!empty($row["first_name"])){
$fnanem = $row["first_name"];
}else{
$fnanem = "";
}
if(!empty($row["last_name"])){
$lnanem = $row["last_name"];
}else{
$lnanem = "";
}
echo $fnanem."---->".$lnanem."<br>";
}
} else {
echo "0 results";
}
$conn->close();
在下面的代码中更改变量,因为它通过分配新值来替换数组的值。
if (!empty($address['address'])) {
$address = $address['address'].', ';//Chang variable name here
} else {
$address = '';//Chang variable name here
}
我正在遍历 MySQL 结果,但 运行 遇到了问题。问题是只执行了我的第一个 if
语句。我的 if
语句的其余部分是 returning 空字符串。令我困惑的是:当我删除 while 循环中的第一个 if 语句时,下一个 if 语句将 return 数据但它下面的所有其他语句都不会。
这是我的相关代码:
// 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>';
while ($address = mysqli_fetch_array($resultAddresses, MYSQLI_ASSOC)) {
$address_labels .= $address['label'].'<br>';
if (!empty($address['address'])) {
$address = $address['address'].', ';
} else {
$address = '';
}
}
我在查看您的代码时发现,您对 while 循环和第一个 if 语句使用了相同的变量 $address
。尝试更改循环变量,比如 $result
并尝试
Plz paste following Code in your editor:
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "databasename";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT * FROM users";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
//echo "id: " . $row["id"]. " - Name: " . $row["first_name"]. " " . $row["last_name"]. "<br>";
$fnanem ="";
$lnanem ="";
if(!empty($row["first_name"])){
$fnanem = $row["first_name"];
}else{
$fnanem = "";
}
if(!empty($row["last_name"])){
$lnanem = $row["last_name"];
}else{
$lnanem = "";
}
echo $fnanem."---->".$lnanem."<br>";
}
} else {
echo "0 results";
}
$conn->close();
在下面的代码中更改变量,因为它通过分配新值来替换数组的值。
if (!empty($address['address'])) {
$address = $address['address'].', ';//Chang variable name here
} else {
$address = '';//Chang variable name here
}