Функция PHP, предназначенная для запроса базы данных, возвращает в три раза больше результатовPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Функция PHP, предназначенная для запроса базы данных, возвращает в три раза больше результатов

Сообщение Anonymous »

Я написал функцию для запроса базы данных и возврата массива, содержащего результаты. Проблема в том, что функция возвращает в 3 раза больше результатов в массиве, когда возвращает результат. В приведенном ниже случае вы передаете массив в функцию, затем она отделяет элемент, который собирается добавить в запрос (который представляет собой разделенную запятыми строку первичных ключей к другой таблице). В примере ниже в него передается число 1, что должно возвращать 1 результат в массиве; но происходит то, что он возвращает 1 результат 3 раза в массиве.
Я проверил страницу, которая принимает результат функции и отображает его на странице, и возвращаемый массив включает 3 результата, причем правильный результат отображается только в 3 элементах массива. Я не понимаю, что является причиной этого, у кого-нибудь есть идеи?
Код одной из функций приведен ниже:

Код: Выделить всё

function inqQuery($rptQueryResult4) {
require "../include/dbh.inc.php";
try {
$inqList = $rptQueryResult4['rpt_inq_string'];
$inq_arr = explode(",",$inqList);
$inStmt4 = str_repeat('?,',count($inq_arr) - 1) . '?';
$inqQuery = "SELECT prop_dba_name AS property_name, dba_name AS mgt_co, CAST(`inq.create_ts` AS DATE) AS inquiry_date
FROM property_data, enterprise_data, rpt_inquiries, tenant_reports
WHERE rpt_inquiries.linked_prop_id = property_data.property_id AND rpt_inquiries.linked_ent_id = enterprise_data.ent_id AND rpt_inquiries.inquiry_id IN($inStmt4);";
$results_inqQuery = $pdo->prepare($inqQuery);
$results_inqQuery->execute($inq_arr);
$arrInqQuery = $results_inqQuery->fetchAll(PDO::FETCH_ASSOC);
return $arrInqQuery;

} catch (PDOException $e) {
die("Query Failed: " . $e->getMessage());
}
Когда массив помещается в функцию, результирующий результат должен представлять собой 1 элемент массива. Функция возвращает 1 ожидаемый элемент массива, но он отображается в массиве 3 раза вместо одного. У меня есть похожие функции для разных результатов в таблицах, и все функции возвращают в три раза больше ожидаемых результатов.

Подробнее здесь: https://stackoverflow.com/questions/789 ... re-results
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»