Помощник
|
Что за ошибка в базе данных? |
Дилетант_mw
|
Сообщение
#1
|
||
|
|
||
|
|||
matroskin8 |
27.12.2011, 13:19;
Ответить: matroskin8
Сообщение
#2
|
|
(Дилетант) Что за SELECT FROM LEFT... При помощи оператора JOIN можно объединить данные из двух таблиц в одну. (Дилетант) Из-за чего может быть ошибка? Вы сами и ответили на свой вопрос... из-за того, что проанализировав запрос, сервер не нашел поля p_tid. В какой таблице это поле... ну Вам виднее - Вы же работаете с этой БД... рискну предположить, что в одной из таблиц: ib_Post, ib_User... вот только из них это поле в запросе не выбирается. Также в запросе, во избежание недоразумений, желательно указывать из какой именно таблицы брать значение того или иного поля. Вообще, код желательно постить так, чтобы его было удобно читать или разбирать тому, кто Вам решит помочь... проявляйте уважение. |
|
|
yury_mw |
29.12.2011, 0:00;
Ответить: yury_mw
Сообщение
#3
|
|
Из-за чего может быть ошибка? SELECT u_id,u__name,u__email FROM ib_Post, ib_User LEFT JOIN ib_Subscription sb ON (sb.uid=u_id AND sb.tid=p_tid) LEFT JOIN ib_UserAccess ua ON (ua.uid=u_id AND ua.fid=2) WHERE p_uid=u_id AND u_id>4 AND COALESCE(ua_level,u__level)>1000<br>1054: Unknown column 'p_tid' in 'on clause' Нет столбца-поля p_tid, а в какой таблице? Запрос непонятен для меня, чайника. Подскажите, что тут происходит? Что за SELECT FROM LEFT и т.д. В базах не силен, но есть подозрение, что поле p_tid живет в таблице ib_Post, а запрос ищет (и не находит) его в объединении таблиц ib_User и ib_Subscription sb. Короче, попробуйте вместо запятой написать LEFT JOIN: SELECT u_id,u__name,u__email FROM ib_Post LEFT JOIN ib_User LEFT JOIN ib_Subscription sb ON (sb.uid=u_id AND sb.tid=p_tid) LEFT JOIN ib_UserAccess ua ON (ua.uid=u_id AND ua.fid=2) WHERE p_uid=u_id AND u_id>4 AND COALESCE(ua_level,u__level)>1000 Ну или действительно поискать, в какой из таблиц на самом деле живет поле p_tid. |
|
|
НЕПЛОХОЙ |
29.12.2011, 0:20;
Ответить: НЕПЛОХОЙ
Сообщение
#4
|
|
попробуйте так
SELECT * FROM ib_Post, ib_User LEFT JOIN ib_Subscription sb ON (sb.uid=u_id AND sb.tid=ib_post.tid) LEFT JOIN ib_UserAccess ua ON (ua.uid=u_id AND ua.fid=2) WHERE p_uid=u_id AND u_id>4 AND COALESCE(ua_level,u__level)>1000 но скорей всего работать не будет, тогда посмотрите поле tid в таблице ib_Post |
|
|
Дилетант_mw
|
Сообщение
#5
|
|
Структура таблицы ib_post
Поле Тип Ноль По умолчанию Комментарии p_id int(10) Нет p_tid int(10) Нет 0 p_uid int(11) Нет 0 p_text mediumtext Нет p__modcomment mediumtext Нет p__time int(10) Нет 0 p__edittime int(10) Нет 0 p_signature tinyint(4) Нет 0 p__smiles tinyint(4) Нет 0 p__bcode tinyint(4) Нет 0 p__html tinyint(4) Нет 0 p_attach int(11) Нет 0 p_uname varchar(32) Нет p__ip int(10) Нет 0 p_title varchar(64) Нет p__premoderate tinyint(4) Нет 0 Структура таблицы ib_user Поле Тип Ноль По умолчанию Комментарии u_id int(10) Нет u_stid int(10) Нет 0 u_lnid int(10) Нет 0 u__level smallint(6) Нет 0 u__name varchar(32) Нет u__active tinyint(4) Нет 0 u__password varchar(32) Нет u__email varchar(48) Нет u_usesignature tinyint(4) Нет 0 u_showmail tinyint(4) Нет 0 u_usesmiles tinyint(4) Нет 0 u_signature varchar(255) Нет u_gender tinyint(4) Нет 0 u_sformat varchar(20) Нет u_lformat varchar(20) Нет u_location varchar(40) Нет u_tperpage smallint(6) Нет 0 u_mperpage smallint(6) Нет 0 u_homepage varchar(128) Нет u_showavatars tinyint(4) Нет 0 u_avatartype tinyint(4) Нет 0 u__avatar varchar(128) Нет u__pavatar_id int(11) Нет 0 u__photo_id int(11) Нет 0 u_encrypted tinyint(4) Нет 0 u__regdate int(10) Нет 0 u__profileupdate int(10) Нет 0 u__newpassword varchar(32) Нет u__title varchar(48) Нет u_timeregion smallint(6) Нет 0 u_icq int(11) Нет 0 u_interests varchar(255) Нет u_hidden tinyint(4) Нет 0 u__key varchar(12) Нет u_detrans tinyint(4) Нет 0 u_nomails tinyint(4) Нет 0 u_sortposts tinyint(4) Нет 0 u_multilang tinyint(4) Нет 0 u_timelimit smallint(6) Нет 0 u_bday tinyint(3) Нет 0 u_bmonth tinyint(3) Нет 0 u_bmode tinyint(3) Нет 0 u_aol varchar(32) Нет u_yahoo varchar(32) Нет u_msn varchar(64) Нет u_jabber varchar(64) Нет u_diary varchar(128) Нет u_extform tinyint(4) Нет 1 u_aperpage smallint(5) Нет 0 u__rating int(10) Нет 0 u__warnings int(10) Нет 0 u__pmcount int(10) Нет 0 u__warntime int(10) Нет 0 u__lastlogin int(10) Нет 0 u_pmnotify tinyint(3) Нет 1 u__pmtime int(10) Нет 0 u_realname varchar(60) Нет u_nosigns tinyint(3) Нет 0 u_prevmsgs tinyint(3) Нет 5 ib_Subscription Поле Тип Ноль По умолчанию Комментарии uid int(10) Нет 0 tid int(10) Нет 0 fid int(11) Нет 0 ib_UserAccess Поле Тип Ноль По умолчанию Комментарии uid int(10) Нет 0 fid int(10) Нет 0 ua_level smallint(6) Да NULL Код, где ошибка $sql = "SELECT p.*,t_title,t_id,f_title,f_id FROM ".$GLOBALS['DBprefix']."Post p, ".$GLOBALS['DBprefix']."Topic, ".$GLOBALS['DBprefix']."Forum ".
"WHERE ($pmdata) AND p_tid=t_id AND t_fid=f_id"; $res =&db_query($sql,$link); $buffer=load_mail("std_post.txt"); while ($pdata=&db_fetch_array($res)) { $sql = "SELECT u_id,u__name,u__email FROM ".$GLOBALS['DBprefix']."Post, ".$GLOBALS['DBprefix']."User ". "LEFT JOIN ".$GLOBALS['DBprefix']."Subscription sb ON (sb.uid=u_id AND sb.tid=p_tid) ". "LEFT JOIN ".$GLOBALS['DBprefix']."UserAccess ua ON (ua.uid=u_id AND ua.fid=".$GLOBALS['forum'].") ". "WHERE p_uid=u_id AND u_id>4 AND ". "COALESCE(ua_level,u__level)>".$GLOBALS['inforum']['f_lmoderate']; $res =&db_query($sql,$link); while ($email=db_fetch_row($res)) { $GLOBALS['username']=$email[0]; $GLOBALS['postername']=$GLOBALS['inuser']['u__name']; $GLOBALS['flink']=$GLOBALS['opt_url']."/index.php?t=".$GLOBALS['topic']; $GLOBALS['unsublink']=$GLOBALS['opt_url']."/agent.php?a=unsub&u=".$GLOBALS['inuserid']. "&f=".$GLOBALS['forum']."&t=".$GLOBALS['topic']."&key=".md5($GLOBALS['topic'].$GLOBALS['inuser']['u__key']); replace_mail($buffer,$email[1],MSG_p_newmessage." ".$GLOBALS['ttitle']); } |
|
|
НЕПЛОХОЙ |
29.12.2011, 18:00;
Ответить: НЕПЛОХОЙ
Сообщение
#6
|
|
SELECT * FROM ib_Post, ib_User LEFT JOIN ib_Subscription sb ON (sb.uid=u_id AND sb.tid=ib_post.p_tid) LEFT JOIN ib_UserAccess ua ON (ua.uid=u_id AND ua.fid=2) WHERE p_uid=u_id AND u_id>4 AND COALESCE(ua_level,u__level)>1000 отпишитесь, что выводит теперь |
|
|
matroskin8 |
29.12.2011, 18:36;
Ответить: matroskin8
Сообщение
#7
|
|
В запросе надо бы поправить регистр имени таблицы, потому как не всегда может быть ib_Post == ib_post.
Если сервер установлен не под Windows, а под Unix, тогда имена таблиц могут быть чувствительны к регистру. Да и в случае если сервер БД стоит на ОС Windows также не следует злоупотреблять регистронезависимостью. |
|
|
Магадан |
19.1.2012, 17:13;
Ответить: Магадан
Сообщение
#8
|
|
|
В запросе надо бы поправить регистр имени таблицы, потому как не всегда может быть ib_Post == ib_post. Если сервер установлен не под Windows, а под Unix, тогда имена таблиц могут быть чувствительны к регистру. Да и в случае если сервер БД стоит на ОС Windows также не следует злоупотреблять регистронезависимостью. Более того, в рамках одного запроса не стоит писать имя одной и той же таблицы в разных вариантах, как рекомендовали в запросах выше (ib_Post и ib_post): SELECT * FROM ib_Post, ib_User LEFT JOIN ib_Subscription sb ON (sb.uid=u_id AND sb.tid=ib_post.p_tid)
|
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Статейное продвижение ваших сайтов по качественной базе с тИЦ тИЦ 10+ |
237 | Intersect | 258053 | Вчера, 12:13 автор: Intersect |
|
Во что Вы играете? | 400 | Vmir | 67986 | 20.4.2024, 18:39 автор: SaintExchange |
|
Во что сегодня инвестировать? Делимся своими приносящими прибыль вариантами |
76 | traveliver | 5096 | 20.4.2024, 18:27 автор: SaintExchange |
|
Интеграция спортивных данных API. Коэффициенты БК, Live результаты | 15 | yaroslav89 | 6873 | 8.4.2024, 17:17 автор: spoyer_ru |
|
Безанкорный прогон по базе 1600 000 сайтов из DMOZ | 44 | aleggator | 13795 | 10.3.2024, 18:29 автор: kuprum |
Текстовая версия | Сейчас: 25.4.2024, 15:15 |