Я получаю данные из моей базы данных MSSQL Server 2016, используя PDO в PHP.Запрос работает хорошо:
try {
$db = new PDO( 'dblib:host='.$server.' ; dbname='.$database, $user, $pw);
$db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
} catch(PDOException $e) {
die( print_r( $e->getMessage() ) );
}
$smt = $db->query("SELECT ABP.cArtNr AS 'Artikelnummer',
MAX(SUBSTRING(ABP.cName,8,50)) AS 'Beschreibung',
SUM(ABP.nQuantityPurchased) AS 'Anzahl',
SUM(ABP.nQuantityPurchased) * MAX(AA.fPrice) AS 'Brutto-Umsatz'
FROM pf_amazon_bestellung
INNER JOIN pf_amazon_bestellungpos ABP ON pf_amazon_bestellung.kAmazonBestellung = ABP.kAmazonBestellung
INNER JOIN pf_amazon_angebot AA ON ABP.cArtNr = AA.cSellerSKU
WHERE dPurchaseDate >= DateAdd(DAY, DateDiff(DAY, 0, getDate()), 0)
AND pf_amazon_bestellung.cOrderStatus <> 'Canceled'
GROUP BY ABP.cArtNr");
while(($o = $smt->fetch(PDO::FETCH_ASSOC)) !== false) {
print_r($o);
}
$db = NULL;
Вы можете увидеть результат здесь: http://stats.valonic.com/server_processing4.php
Этот результат не пригоден для меня, так как мне нужен JSON, который должен иметь структуру, показанную здесь: http://stats.valonic.com/server_processing.php Здесь я использовал следующий код:
$a = array();
while ($row = mssql_fetch_assoc($result)) {
$a['data'][] = $row;
}
echo json_encode($a);
Но вместо этого я хотел бы использовать PDO.
Вместо этого я попытался использовать fetchAll:
$result = $smt->fetchAll();
print_r($result);
Результат этого можно увидеть здесь: http://stats.valonic.com/server_processing3.php Хорошо, работает, но не знаю, как преобразовать результат, чтобы достичь структуры, как показано в http://stats.valonic.com/server_processing.php.
Можете ли выпомочь мне здесь?Спасибо за ваш отзыв!