这个问题非常适合我的需求,因此我找不到最好的方法。
我想做的是从表people
中提取name
和surname
,并将两者组合成一个数组,最终得到这样的结果:
"Bob Jones","Tony Wright",
。。等
我正在使用PDO。这是我所拥有的:
$attrs = array(PDO::ATTR_PERSISTENT => true);
// connect to PDO
$pdo = new PDO("mysql:host=localhost;dbname=new", "root", "root", $attrs);
// the following tells PDO we want it to throw Exceptions for every error.
// this is far more useful than the default mode of throwing php errors
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$conn = $pdo->prepare("SELECT name, surname FROM people");
$conn->execute();
$results = $conn->fetchAll();
foreach($results as $row){
$fullName = $row['name'] . "," . $row['surname'];
print_r($fullName);
}
我已经尝试了一些东西,我只是暂时被这个代码卡住了。任何帮助或建议都将不胜感激。
$arr = array();
foreach($results as $row) {
$arr[] = "{$row['name']},{$row['surname']}";
}
echo implode($arr);
您也可以在SQL中解决此问题,因此不再需要foreach。
只需更换
SELECT name, surname FROM people
带有
SELECT CONCAT_WS(' ', name, surname) FROM people
一旦从数据库中提取了行,就需要在结果集上循环,并将组合名称分配给一个新数组:
<?php
// result set from database
$results = $conn->fetchAll();
// create an empty array to store our names
$names = array();
// loop over result set and add entry to $names array
foreach ($results as $result) {
$names[] = $row['name'] . ' ' . $row['surname'];
}
print_r($names);
$fullname =array();
foreach($results as $row){
$fullName = $row['name'] . " " . $row['surname'];
}
print_r($fullname);