Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Выборка из базы
Форумы портала PHP.SU » PHP » SQL и Архитектура БД » Выборка из базы

Страниц (1): [1]
 

1. Timfun - 22 Июня, 2012 - 10:16:28 - перейти к сообщению
Всем привет!
Проблема в следующем: Есть таблица с подразделениями и таблица с контактами, которые состоят в этих подразделениях. Перед удалением подразделения провожу проверку на наличие контактов в подазделении:
CODE (SQL):
скопировать код в буфер обмена
  1. "SELECT famil,imya,otches FROM contacts WHERE podraz=('$id')"

Все идет нормально, пока id подразделения не становятся двухзначными, например от 10 до 19 он выбирает контакты с подразделение 1, а от 20 до 29 выбирает подразделения с podraz = 2. Помогите разобратся!
2. Alho - 22 Июня, 2012 - 10:40:40 - перейти к сообщению
3. Viper - 22 Июня, 2012 - 10:43:11 - перейти к сообщению
зачем?

Обычно так
CODE (SQL):
скопировать код в буфер обмена
  1. "... podraz = ".(int)$id
4. Timfun - 22 Июня, 2012 - 13:01:41 - перейти к сообщению
Alho пишет:
PHP:
скопировать код в буфер обмена

var_dump($id);

не сканало
(Добавление)
Viper пишет:
Обычно так
CODE (SQL):
скопировать код в буфер обмена

"... podraz = ".(int)$id

И так тоже, может с mysql чего не так?
5. Viper - 22 Июня, 2012 - 14:19:42 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. echo "SELECT famil, imya, otches FROM contacts WHERE podraz=".$id;

результат покажите тут
6. Timfun - 22 Июня, 2012 - 14:28:32 - перейти к сообщению
У меня id подразделения 1,2,4,22 а контактакты распределены только на 1,2,4 подразделения, в 22 никого нет, но призапросе выводит контакты из второго подразделения. Из PhpMyAdmin все работает правильно, но я из php неправильно отправляю запрос. Или mysql его неправильно понимает.
(Добавление)
выбирает из базы по первой цифре, когда были подразделения с номером 11 или 12 и тд он давал контакты из первого подразделения, а щас номер 22 и он выдает из второго, если добавить в него контакт ситуация не поменяется.
(Добавление)
CODE (html):
скопировать код в буфер обмена
  1. SELECT famil,imya,otches FROM contacts WHERE podraz = 2<!--error--><b>Warning</b>:  Cannot modify header information - headers already sent by (output started at Z:\home\localhost\www\vnut\admin\model.php:69) in <b>Z:\home\localhost\www\vnut\admin\control\p_editor.php</b> on line <b>75</b><script language=JavaScript src='/denwer/errors/phperror_js.php'></script>К <b>Подразделение3</b> относятся контакты: Фамилия Имя Отчество, Приколюхин Андрей Валерьевич, Сидоров Петр Иванович, Петров Петр Петрович, Молодцов Молодец Молодецкий, удалите их или отнесите к другому подразделению<br />

Ошибка из-за хедера, а так все норм
7. Viper - 22 Июня, 2012 - 15:08:33 - перейти к сообщению
Timfun пишет:
но я из php неправильно отправляю запрос.
тогда приведите код, а то гадать по звездам надоело уже...
8. Timfun - 22 Июня, 2012 - 15:34:10 - перейти к сообщению
Модель:
PHP:
скопировать код в буфер обмена
  1. function check_cont ($info) {
  2.             $id = $info['del'];
  3.             $sql = "SELECT famil,imya,otches FROM contacts WHERE podraz = ".$id;
  4.             $res = $this->sql($sql);
  5.             return $res;
  6.         }

Контроллер:
PHP:
скопировать код в буфер обмена
  1. $result = $res->check_cont($_GET['del']);
  2.         $fio = $pdr->pod_fetch($result);
  3.         $num = $pdr->pod_num($result);
  4.         $id = $_GET['del'];
  5.         $info = $pdr->pod_name($id);
  6.         $podr = $pdr->pod_fetch($info);
  7.         if ($num > 0) {
  8.             header ('Refresh:2;cont_edit.php');
  9.             echo "К <b>".$podr['pod_name']."</b> относятся контакты: ";
  10.             do {
  11.                 echo $fio['famil']." ".$fio['imya']." ".$fio['otches'].", ";
  12.             } while ($fio = $pdr->pod_fetch($result));
9. Timfun - 23 Июня, 2012 - 06:30:21 - перейти к сообщению
Спасибо всем за помощь, решил проблему. Неправильно передовалась переменная.
контроллер:
PHP:
скопировать код в буфер обмена
  1. $id = $_GET['del'];
  2.         $result = $res->check_cont($id);

Модель:
PHP:
скопировать код в буфер обмена
  1. function check_cont ($id) {
  2.             $sql = "SELECT famil,imya,otches FROM contacts WHERE podraz = ".$id;
  3.             $res = $this->sql($sql);
  4.             return $res;
  5.         }

 

Powered by ExBB FM 1.0 RC1