Перейти к содержимому


Вычисления


Сообщений в теме: 31

#21 Alexander

    Активный участник

  • Пользователи
  • PipPipPip
  • 121 сообщений

Отправлено 09 Июнь 2010 - 14:17

Я не прошу создать таблицу, я прошу обьяснить на основании данных предоставленных выше, какая ошибка у меня в коде
$sqlQuery = "SELECT * FROM ".DATA_TABLE."62 WHERE f723='{ID}' ORDER BY f724 desc LIMIT 1";
$result = mysql_query($sqlQuery);
$row = mysql_fetch_array($result);
return $row['f725'];

#22 Timur

    Активный участник

  • Техподдержка ООО "КБ"
  • PipPipPip
  • 854 сообщений
  • Пол:Мужчина

Отправлено 09 Июнь 2010 - 15:39

Мы уже указали где у вас ошибка. Более конкретная информация является по сути разработкой вычисляемого поля.

#23 Alexander

    Активный участник

  • Пользователи
  • PipPipPip
  • 121 сообщений

Отправлено 15 Июнь 2010 - 14:07

Есть таблица "Договоры" с полем "Номер договора"
Есть Таблица "Счета" с полем "Номер счета"
В Счетах создал поле "по Договору №" которое является полем связи с полем "Номер договора" из таблицы "Договоры"
Хочу теперь создать в таблице "Договоры" поле " по Счету №", в котором бы автоматом высвечивался "Номер счета" из таблицы "Счета". Возможно ли сделать такое вычисление?
Я в поле "Номер счета" в таблице "Договоры" внес следующее вычисление

$dogovory = data_table("Договоры","id={ID}");
$scheta = data_table("Счета","id='".$dogovory['Номер договора']."'");
return $scheta['Номер счета'];

Выдает не совсем то. Не подскажете что делать?

#24 Timur

    Активный участник

  • Техподдержка ООО "КБ"
  • PipPipPip
  • 854 сообщений
  • Пол:Мужчина

Отправлено 15 Июнь 2010 - 15:34

Вы перепутали поля в условии таблицы Счета. Полем связи является поле "Номер договора" в таблице Счета, а не наоборот. Правильное условие: поле "Номер договора" из таблицы "Счета" равно id строки из таблицы "Договоры" ("`Номер договора`=$dogovory['ID']")

#25 Alexander

    Активный участник

  • Пользователи
  • PipPipPip
  • 121 сообщений

Отправлено 15 Июнь 2010 - 18:00

Вы предлагаете такую вещь?
$dogovory = data_table("Договоры","id={ID}");
$scheta = data_table("Счета","'по Договору №'=$dogovory['ID']");
return $scheta['Номер счета'];

Не срабатывает.. Или я не так вас понял?

#26 Timur

    Активный участник

  • Техподдержка ООО "КБ"
  • PipPipPip
  • 854 сообщений
  • Пол:Мужчина

Отправлено 16 Июнь 2010 - 10:00

Все верно, но есть несколько недочетов. Во-первых, название поля надо писать в косых кавычках: `по Договору №`, в прямых кавычках пишутся значения полей, а не имена. Во-вторых, переменные php должны быть за пределами строки условия, а не внутри ее, т.е: "`по Договору №`=".$dogovory['ID']. В-третьих, значения в условиях желательно помещать внутрь прямых кавычек, т.е. в итоге получаем: "`по Договору №`='".$dogovory['ID']."'"

#27 Alexander

    Активный участник

  • Пользователи
  • PipPipPip
  • 121 сообщений

Отправлено 16 Июнь 2010 - 12:31

Внес предлагаемое вами вычисление:
$dogovory = data_table("Договоры","id={ID}");
$scheta = data_table("Счета","`по Договору №`='".$dogovory['ID']."'");
return $scheta['Номер'];

После этого таблица Договоры перестала отображаться в проводнике.
Вытер это вычисление, все вернулось на круги своя
Где может быть проблема?

#28 Timur

    Активный участник

  • Техподдержка ООО "КБ"
  • PipPipPip
  • 854 сообщений
  • Пол:Мужчина

Отправлено 16 Июнь 2010 - 13:00

Что значит "перестала отображаться в проводнике"? Выходит пустая страница, или сообщение об ошибке?

#29 Alexander

    Активный участник

  • Пользователи
  • PipPipPip
  • 121 сообщений

Отправлено 16 Июнь 2010 - 13:39

Выводит сообщение об ошибке HTTP500

#30 Timur

    Активный участник

  • Техподдержка ООО "КБ"
  • PipPipPip
  • 854 сообщений
  • Пол:Мужчина

Отправлено 16 Июнь 2010 - 14:38

Скорее всего у вас ошибка в вычислении. Оптимально конечно чтобы сервер выдавал ошибки php на экран для отладки, но у вас видимо настроено иначе. Возможно ошибка в имени поля - имя в запросе и в таблице должно полностью совпадать.

#31 Alexander

    Активный участник

  • Пользователи
  • PipPipPip
  • 121 сообщений

Отправлено 16 Июнь 2010 - 15:25

Спасибо... был невнимателен..
Поле "по Счету №" является вычисляемым полем в таблице "Договоры" (берется номер счета из таблицы "Счета")
Скажите пожалуйста, каким образом можно сделать чтобы при нажатии на номер счета меня перенаправляло в запись этого счета в таблице"Счета". Типа того если я поле делаю полем связи в другой таблице.

#32 Timur

    Активный участник

  • Техподдержка ООО "КБ"
  • PipPipPip
  • 854 сообщений
  • Пол:Мужчина

Отправлено 16 Июнь 2010 - 15:35

Сделайте это поле полем связи с таблицей Счета и соответственно в вычислении возвращайте не номер счета, а id строки: return $scheta['ID'];





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных