Показать сообщение отдельно

  #3  
Старый 29.12.2007, 22:55
Scipio
Members of Antichat - Level 5
Регистрация: 02.11.2006
Сообщений: 781
Провел на форуме:
5939734

Репутация: 1917


Отправить сообщение для Scipio с помощью ICQ
По умолчанию

2~EviL~

есть 2 запроса, в которых используется id (на самом деле их 3 как минимум там еще UPDATE есть)

1.SELECT * FROM school_programs WHERE id =$id он получает все колонки из таблицы school_programs, их 37 и когда ты подставляешь union select с 37 колонками запрос получается правильный:
Код:
SELECT * FROM school_programs WHERE id =1 UNION SELECT 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37/*
но потом $id (и твой запрос соответственно) передается во второй запрос:
2.SELECT AVG(score) AS number FROM school_rating WHERE program_id =$id он получает одно число (среднее из колонки score) подставляем значение $id получаем
Код:
SELECT AVG(score) AS number FROM school_rating WHERE program_id = 1 UNION SELECT 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37/*
неправильный запрос, для правильного запроса надо было бы указать:
$id=1 union select 1/* но это вызвало бы ошибку в первом запросе, так что тут остается только использовать подзапросы по другому никак
__________________
Карфаген должен быть разрушен...
 
Ответить с цитированием