Дважды не вытащить данные из таблицы
#1
Отправлено 22 Июнь 2010 - 23:37
Таблица А
Таблица Б
Таблица В
1. В таблице В надо вытащить данные из неё самой (поле X) и перемножить с данными таблицы Б (поле Y). Успешно.
2. Тут же в таблице В надо вытащить данные из таблицы А. Никак не получается. Также не получается вытащить данные из любой другой ячейки таблицы Б, кроме поля Y.
Такое может быть или ошибка где-то в коде?
#2
Отправлено 23 Июнь 2010 - 08:37
#3
Отправлено 23 Июнь 2010 - 09:59
Zoldberg (22.6.2010, 23:37) писал:
Таблица А
Таблица Б
Таблица В
1. В таблице В надо вытащить данные из неё самой (поле X) и перемножить с данными таблицы Б (поле Y). Успешно.
2. Тут же в таблице В надо вытащить данные из таблицы А. Никак не получается. Также не получается вытащить данные из любой другой ячейки таблицы Б, кроме поля Y.
Такое может быть или ошибка где-то в коде?
#4
Отправлено 23 Июнь 2010 - 10:14
$data = data_table("Заявки на бронь","id={ID}");
$cena = data_table("Описания номеров","id='".$data['Номера']."'");
$cena1 = $cena['Цена'];
$kol = $data["Кол-во ночей"];
$result = $cena1*$kol;
return $result;
Это ко второму, отказывается выбирать из другой, третьей таблицы
$data = data_table("Заявки на бронь","id={ID}");
$cena = data_table("Гостиницы","id='".$data['Гостиница']."'");
$cena1 = $cena['% фирме'];
return $cena1;
Только что обнаружил, что он выдаёт данные, но из другой гостиницы, а не той которую надо. Не понимаю...
#5
Отправлено 23 Июнь 2010 - 10:49
#6
Отправлено 23 Июнь 2010 - 11:03
Техподдержка (23.6.2010, 10:49) писал:
Попробовал:
$data = data_table("Заявки на бронь","id={ID}");
$cena = data_table("Гостиницы","id='".$data['Гостиница']."'");
return $cena;
Выдаёт пустое значение. Сверял названия таблицы и полей, всё совпадает, пробовал изменять названия полей и переменных - не помогает.
А вот из таблицы "Описания номеров" берет любые поля.
Еще из одной таблицы с наименованиями гостиниц берет почему-то другие ячейки из этого-же столбца, то есть с другим id.
Попробовал из другой таблицы взять:
$data = data_table("Заявки на бронь","id={ID}");
$cena = data_table("Все гостиницы","id='".$data['Гостиница']."'");
return $cena;
Выдаёт в одних строках пустое значение, в других Array
#7
Отправлено 24 Июнь 2010 - 12:50
#8
Отправлено 24 Июнь 2010 - 13:13
#9
Отправлено 24 Июнь 2010 - 14:01
Техподдержка (24.6.2010, 13:13) писал:
Да, это я понял. Но вот почему в первом случае правильно, а во втором нет? Всё делаю по аналогии...Не могут где-то сохраняться следы от первых вычислений и влиять на вторые?
#10
Отправлено 24 Июнь 2010 - 14:19
#11
Отправлено 24 Июнь 2010 - 15:33
1. Как-то влияет наличие связи между таблицами или её отсутствие на вычисления?
У меня между связанными таблицами вычисления проходят, а между несвязанными либо пусто, либо Array, либо значения соседних ячеек выдаётся.
2. Возможно ли в вычислениях использовать функции Smarty, в частности цикл {foreach} ?
#12
Отправлено 24 Июнь 2010 - 17:50
$cena = data_table("Все гостиницы","id='".$data['Гостиница']."'");
return $cena;
Если у Вас в Все гостиницы не связаны с заявками, то этот код будет работать не верно, ибо условие "id='".$data['Гостиница']."'" выполняется не правильно. "id='".$data['Гостиница']."'" означает, что id строки равно полю "Гостиница" из таблицы "Заявки на бронь".
Array выходит, потому что Вы выводите массив, а не ячейку.
Смарти вообще лучше не использовать, а все вычисления писать на php. В нем есть цикл foreach.
#13
Отправлено 27 Июнь 2010 - 16:52
Техподдержка (24.6.2010, 17:50) писал:
$cena = data_table("Все гостиницы","id='".$data['Гостиница']."'");
return $cena;
Если у Вас в Все гостиницы не связаны с заявками, то этот код будет работать не верно, ибо условие "id='".$data['Гостиница']."'" выполняется не правильно. "id='".$data['Гостиница']."'" означает, что id строки равно полю "Гостиница" из таблицы "Заявки на бронь".
В Вашей документации здесь http://www.clientbas...n_16/php-polya/ ничего не сказано, должны быть связаны таблицы или нет. Можно как-то подробнее узнать, как правильно обращаться к ячейкам другой таблицы, если таблицы связаны и если таблицы не связаны?
#14
Отправлено 28 Июнь 2010 - 09:06
Но в вашем случае, если вы добавляете условие "id='".$data['Гостиница']."'", то соответственно поле гостиница должно быть полем связи с таблицей "Заявка на бронь". Вообще в поле связи содержаться не значения поля из другой таблицы, а id записи из другой таблицы.
Количество пользователей, читающих эту тему: 2
0 пользователей, 2 гостей, 0 анонимных