我正在尝试使用FECH_ASSOC
从数据库中检索数据,以便输出如下所示
last1 first1 last2 first2& last3 first3
last4 first4& last4 first4
这是我拥有的数据库:
ID index first last
--------------------------
1 1 first1 last1
2 1 first2 last2
3 1 first3 last3
4 2 first4 last4
5 2 first5 last5
每个输出行应由索引值定义。
正如您在输出示例中所看到的,我需要在任何数组中最后一个之前的器官为separetad,因为我需要将&
放在它之前。
这是我提出的代码:
//HERE I RETRIVE ALL THE DATA FROM THE DATABASE.
$sql = "SELECT COUNT( * ) FROM table WHERE index= $index";
$result = $dbh->prepare($sql);
$result->execute();
$number_of_rows = $result->fetchColumn();
//ASSOC DEFINITION
$sth = $dbh->prepare("SELECT * FROM table WHERE index= $index);
$sth->execute();
$value = $sth->fetch(PDO::FETCH_ASSOC);
//THIS IS WHERE I CALL ALL THE ROWS BY THEIR VALUE
$return = "";
$fname = $value['fname'];
$lname = $value['lname'];
$numRow = $number_of_rows-2; // THE ITEM BEFORE THE LAST ONE IN THE ARRAY
$lastItem = $number_of_rows - 1; //LAST INDEX IN THE ARRAY
for($counter = 0; $counter <= $numRow; $counter++){
$value = $sth->fetch(PDO::FETCH_ASSOC);
$fname[$counter] = !empty($fname[$counter]) ? $fname[$counter] : '';
$return .= $lname. ', ' . $fname;
}
$fname[$counter] = !empty($fname[$lastItem]) ? $fname[$lastItem] : '';
$return .= "&" . $fname. ', ' . $lname;
$return .= ' ';
return $return;
这是我得到的输出: last3 first1 last1 first1&amp; last2 first1
last5 first4&amp; last4 first4
我无法弄清楚我做错了什么。 我尝试使用foreach但我没有设法分离最后一对值here。
我坚持这几天了。 任何帮助都会很棒。