Здравствуйте уважаемые администраторы! Есть вопрос касаемый вычисляемого поля.
Таблица №87 "Поступление товара на склад"
СТРУКТУРА:
ПОЛЕ № 1) № поступления - поле типа "номер"; [f887]
ПОЛЕ № 2) Дата поступления - поле типа "дата"; [f879]
ПОЛЕ № 3) Поступление от арендатора - поле типа "список"; [f940]
ПОЛЕ № 4) От кого - поле типа "связь" (связь с полем "Название" таблицы "Контрагенты"); [f904]
ПОЛЕ № 5) № договора - поле типа "число"; [f906]
ПОЛЕ № 6) № товарной накладной - поле типа "число"; [f902]
ПОЛЕ № 7) № счет фактуры - поле типа "число"; [f903]
ПОЛЕ № 8) Дата счет фактуры - поле типа "дата"; [f919]
ПОЛЕ № 9) Товар - поле типа "список"; [f880]
ПОЛЕ № 10) Ед. изм. - поле типа "список"; [f881]
ПОЛЕ № 11) Общее количество товара - поле типа "число"; [f882]
ПОЛЕ № 12) Общее количество тары - поле типа "число"; [f899]
ПОЛЕ № 13) Ответственный за приемку баллонов - поле типа "связь" (связь с полем "ФИО" таблицы "Наши сотрудники"); [f917]
ПОЛЕ № 14) Ген. директор - поле типа "связь" (связь с полем "ФИО" таблицы "Наши сотрудники"); [f918]
ПОЛЕ № 15) Номера - поле типа "текст" (ВЫЧИСЛЯЕМОЕ ПОЛЕ); [f943]
Таблица №90 "Позиции поступления" (подтаблица {подчиненная} приведенной выше таблицы "Поступление товара на склад")
СТРУКТУРА:
ПОЛЕ № 1) Номер поступления - поле типа "связь" (т.к подчиненная); [f895]
ПОЛЕ № 2) Тара - поле типа "список"; [f896]
ПОЛЕ № 3) Состояние - поле типа "список"; [f905]
ПОЛЕ № 4) Номер тары - поле типа "текст"; [f901]
ПОЛЕ № 5) Дата переосвидетельствования - поле типа "дата"; [f897]
ПОЛЕ № 6) Количество газа - поле типа "число". [f898]
В чем вопрос: необходимо, чтобы в поле "Номера"(ПОЛЕ № 15)) таблицы "Поступление товара на склад" перечислялись через запятую все "Номера тары"(ВСЕ ПОЛЯ № 4))
Код пробывал такой:
$sqlQuery = "SELECT f901 FROM ".DATA_TABLE."90 WHERE status=0 f895={ID}";
$result = mysql_query($sqlQuery);
$row = mysql_fetch_array($result);
$itog = implode(", ", $row);
return $itog;
НО, в результате выдает только два номера подряд ОДИНАКОВЫХ???(хотя ВСЕ НОМЕРА РАЗНЫЕ!!!)
ПОМОГИТЕ ПОЖАЛУЙСТА.
1
Вопрос к администраторам форума
Автор GC-RSS, 08 июля 2010 16:59
Сообщений в теме: 5
#1
Отправлено 08 Июль 2010 - 16:59
#2
Отправлено 09 Июль 2010 - 11:07
Уважаемые администраторы! Вопрос все еще актуальный. Ответ очень необходим. Прошу вас ответить!
#3
Отправлено 09 Июль 2010 - 12:58
Уважаемые администраторы! Понимаю вашу занятость, но все же пожалуйста прошу вас ответить на мои сообщения. Лицензия есть!
#4
Отправлено 12 Июль 2010 - 15:42
Уважаемые администраторы! В очередной раз понимаю вашу занятость, но все же пожалуйста прошу вас ответить на мои сообщения. Лицензия есть!
#5
Отправлено 12 Июль 2010 - 16:35
Если вам пока не отвечают - это не значит что вас игнорируют или слишком заняты другими делами. Все вопросы рассматриваются в обязательном порядке, но не на все техподдержка может сразу ответить, иногда требуется время для анализа или консультации с другими специалистами.
Теперь по вашему полю. У вас явная ошибка, вернее существенная недоработка в коде: сам SQL запрос составлен верно, но т.к. данный запрос возвращает в общем случае несколько записей, то соответственно и для составления списка всех номеров необходим цикл по всем записям. Вы же возвращаете только первую запись, более того, зачем то делаете implode(", ", $row), т.е. сливаете все поля одной записи. Видимо вы просто не совсем понимаете суть работы php с mysql запросами. Рекомендую ознакомится с соответствующим разделом руководства php для избежания подобных ошибок.
Правильный код будет таким:
Теперь по вашему полю. У вас явная ошибка, вернее существенная недоработка в коде: сам SQL запрос составлен верно, но т.к. данный запрос возвращает в общем случае несколько записей, то соответственно и для составления списка всех номеров необходим цикл по всем записям. Вы же возвращаете только первую запись, более того, зачем то делаете implode(", ", $row), т.е. сливаете все поля одной записи. Видимо вы просто не совсем понимаете суть работы php с mysql запросами. Рекомендую ознакомится с соответствующим разделом руководства php для избежания подобных ошибок.
Правильный код будет таким:
$sqlQuery = "SELECT f901 FROM ".DATA_TABLE."90 WHERE status=0 f895={ID}"; $result = mysql_query($sqlQuery); while ($row = mysql_fetch_array($result)) { // цикл по всем записям данного запроса $numbers[] = $row['f901']; // заносим очередной номер в массив номеров } $itog = implode(", ", $numbers); // сливаем все номера в итог return $itog;
#6
Отправлено 12 Июль 2010 - 16:44
Спасибо вам огромное! Прошу прощения если я кого-нибудь обидел. Я честно не хотел. Еще раз спасибо
Количество пользователей, читающих эту тему: 2
0 пользователей, 2 гостей, 0 анонимных