У меня проблема с моим подключением odbc через PHP. Существует база данных называется statistics.mdb, где несколько информация хранится в базе данных В этом есть две таблицы:. - Оборот ESHOP - МагазиныMDB/ODBC с PHP - неправильный/сгруппированный результат запроса
таблице «Магазины» гораздо меньше, чем «Оборот ESHOP». Следующее соединение/запрос работает без каких-либо проблем с таблицей «Магазины». Но это показывает проблему, когда я пытаюсь использовать ее с «Turnover EShop».
$pdo = new PDO("odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=O:\\Statistics\\statistics.mdb;Uid=Admin");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "SELECT * FROM Turnover EShop WHERE ProductGroup = 'A22'";
$exec = $pdo->query($sql);
foreach ($exec as $row) { echo $row[1]."<br>"; //index Problem mentioned below: 1 = 'ProductName' }
Есть результаты, даже правильные. Но таблица «Оборот ESHOP» выглядит следующим образом (simplyfied 3 строки):
OrderID: 1
ProductName: Super Product 77
ProductNo: 123-456
ProductGroup: A22
OrderID: 2
ProductName: Super Product 77
ProductNo: 123-456
ProductGroup: A22
OrderID: 3
ProductName: Product 12
ProductNo: 888-999
ProductGroup: B52
Наконец, результат: Супер продукт 77 (Только один раз ...) Но это должно быть там дважды ...
Еще одна забавная вещь, используя $row['ProductName']
, она просто работает для стола «Магазины». В большой таблице «Turnover EShop» есть ошибка, вызванная неопределенным индексом ... Поэтому мне пришлось использовать числа, которые не совпадают с числами столбцов.
foreach ($exec as $row) { echo $row[1]."<br>"; }
Спасибо за вашу поддержку заранее и желаю вам великий день
Абсолютно, в поле и таблицы MS Access имен с пространством или специальных символов или зарезервированные слова должны быть заключены в квадратные скобки. Кроме того, массивы PHP основаны на нуле, поэтому первый столбец * OrderID * будет '$ row [0]', а второй столбец, * ProductName *, будет '$ row [1]'. – Parfait