У меня здесь ментальный пробел, и я не могу, чтобы жизнь меня определяла решение.
Мой сценарий заключается в том, что я программирую на PHP и MySQL. У меня есть таблица базы данных, возвращающая результаты для определенного заказа. Запрос может возвращать максимум 4 строки на заказ и минимум 1 строку.
Вот образ того, как я хочу вернуть результаты. alt text http://img.ruphp.com/php/packages.jpg
У меня есть все orderdetails (Name, address) ect, хранящиеся в таблице с именем «orders». У меня есть все пакеты для этого заказа, хранящиеся в таблице с именем «пакеты».
Что мне нужно сделать, так это использование цикла, в котором мне нужен доступ к каждому конкретному элементу результатов базы данных (IE package1, itemstype1, package2, itemtype2) ect
Я использую такой запрос, чтобы попытаться получить только «количество элементов:
$sql = "SELECT * FROM bookings_onetime_packages WHERE orderid = '".$orderid."' ORDER BY packageid DESC"; $total = $db->database_num_rows($db->database_query($sql)); $query = $db->database_query($sql); $noitems = ''; while($info = $db->database_fetch_assoc($query)){ $numberitems = $info['numberofitems']; for($i=0; $i<$total; $i++){ $noitems .= $numberitems[$i]; } } print $noitems;
Мне нужно иметь доступ к каждому конкретному элементу, потому что мне нужно создать заполнение pdf-шаблона с помощью «fpdf».
Я надеюсь в этом есть смысл. Любое направление было бы высоко оценено.
Вы должны сделать что-то вроде этого:
$data = array(); while($row = $db->database_fetch_assoc($query)) { $data[] = $row; }
Теперь $ data – это массив, в котором каждый элемент является строкой результата запроса.
Затем вы можете получить доступ к строкам как $ data [0], $ data [1], а элементы внутри строк – как $ data [1] ['package'], $ data [0] ['itemtype'], потому что каждый row – ассоциативный массив.
Вы можете получить количество строк, возвращаемых с помощью count ($ data).