0

この質問は私のニーズに非常に具体的であるため、これを行うための最良の方法が見つかりません。

私がやりたいのは、テーブルからフェッチnameして、両方を配列に結合して、そのような結果になることです。surnamepeople

"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);
} 

私はいくつかのことを試しましたが、このコードですぐに立ち往生しています。どんな助けや提案も大歓迎です。

4

4 に答える 4

1

この問題は SQL でも解決できるため、foreach は不要になります。

交換するだけ

SELECT name, surname FROM people

SELECT CONCAT_WS(' ', name, surname) FROM people
于 2013-07-04T07:14:24.570 に答える
1
$arr = array();
foreach($results as $row) {
   $arr[] = "{$row['name']},{$row['surname']}";
}
echo implode($arr);
于 2013-07-03T17:27:57.477 に答える
0
$fullname =array();
foreach($results as $row){
        $fullName = $row['name'] . " " . $row['surname'];
}
print_r($fullname);
于 2013-07-03T17:38:59.133 に答える
0

データベースから行を取得したら、結果セットをループして、結合された名前を新しい配列に割り当てる必要があります。

<?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);
于 2013-07-03T17:27:49.517 に答える