2013-10-02 2 views
0

у меня есть этот MySQL запрос, который работает отлично:PHP MySQL запрос - Документ пуст при добавлении дополнительных полей

$query = "SELECT 
      USER.USER_ID, NAME, SURNAME, EMAIL, STATUS, PHOTO 
      FROM FRIENDLIST, USER, USER_PROFILE 
      WHERE FRIENDLIST.FRIEND_ID = ANY (
       SELECT FRIEND_ID FROM FRIENDLIST WHERE USER_ID=".$userID." 
     ) 
      AND APPROVED='YES' 
      AND USER.USER_ID=FRIENDLIST.FRIEND_ID 
      AND USER.USER_ID=USER_PROFILE.USER_ID 
      UNION 
      SELECT 
      USER.USER_ID, NAME, SURNAME, EMAIL, STATUS, PHOTO FROM FRIENDLIST, USER, USER_PROFILE 
      WHERE FRIENDLIST.FRIEND_ID = " . $userID . " 
      AND APPROVED = 'YES' 
      AND USER.USER_ID=FRIENDLIST.USER_ID 
      AND USER.USER_ID=USER_PROFILE.USER_ID"; 

Когда я добавить несколько полей в запросе я получаю «Документ пуст» ошибка.

$query = "SELECT 
      USER.USER_ID, NAME, SURNAME, EMAIL, STATUS, PHOTO, gender, cposition, rinterest, about 
      FROM FRIENDLIST, USER, USER_PROFILE 
      WHERE FRIENDLIST.FRIEND_ID = ANY (
       SELECT FRIEND_ID FROM FRIENDLIST WHERE USER_ID=" . $userID . " 
     ) 
      AND APPROVED='YES' 
      AND USER.USER_ID=FRIENDLIST.FRIEND_ID 
      AND USER.USER_ID=USER_PROFILE.USER_ID 
      UNION 
      SELECT 
      USER.USER_ID, NAME, SURNAME, EMAIL, STATUS, PHOTO 
      FROM FRIENDLIST, USER, USER_PROFILE 
      WHERE FRIENDLIST.FRIEND_ID = ".$userID." 
      AND APPROVED='YES' 
      AND USER.USER_ID=FRIENDLIST.USER_ID 
      AND USER.USER_ID=USER_PROFILE.USER_ID"; 

Новые поля относятся к таблице USER_PROFILE.

+2

Эти «**» действительно в вашем коде sql? – Armage

+0

Нет ... я хотел бы сделать добавленные поля полужирным, но вместо этого они помещают звездочки. – Kostis

+2

Это немного беспорядок. Прочитайте синтаксис JOIN и начните с нуля. – Strawberry

ответ

0

Вы используете UNION так как SELECT запросов должны иметь точно такое же число столбцов. В противном случае ваш запрос не удастся, и это может привести к ошибкам, подобным тем, которые вы видите. Это сообщение об ошибке, вероятно, также указывает на то, что результат запроса не проверяется на наличие ошибок или сбоев.

Это было бы намного проще определить, если код был отформатирован правильно. Допускается (и рекомендуется) использовать входящий в SQL-запрос.

+0

Спасибо Arjan !!! Это была проблема! Я не заметил, что после UNION я должен был добавить эти поля в оператор select! – Kostis

Смежные вопросы