Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.11.2009, 19:51   #1
dedyshka
Пользователь
 
Регистрация: 10.11.2009
Сообщений: 23
По умолчанию неправильный запрос?

я мало чего понимаю в пхп, я даже с точностью не могу сказать, что эта ошибка связана с пхп-кодом (возможно надо писать в разделе мускула), но всё же - за любую помощь буду очень благодарен. При заходе на страницу выдаёт вот такое:

SQL Ошибка запроса:
select u.userbirthday,p.osob_points,p.id_b attle,p.travma_type,p.`2007`,p.vete ran,p.travma_id,p.travma_time,p.unc haos_timestamp,u.email,p.stat_point s,p.mast_points,p.dateborn,p.money, p.gold,p.wins,p.loss,p.nich,p.exp,p .regen_timestamp,p.regeneration,p.l ife,p.mana,p.sex,p.shadow,u.login,p .blocked, p.id_city, p.persname, p.id_person, p.level, p.align,c.clanname,c.clanalign,p.id _clan,p.clanzvan,ct.cityname,ctt.ci tyname as citycurname,po.id_person as inv from person p LEFT JOIN clans c on p.id_clan=c.id_clan LEFT JOIN users u on p.id_person=u.id_person LEFT JOIN city ct on ct.id_city=p.id_cityborn LEFT JOIN city ctt on ctt.id_city=p.id_city LEFT JOIN person_on po on po.id_person=u.id_person and po.type=5 where p.id_person='22';


Что дополнительно скинуть: код, или файл sql, который создаёт таблицу - не знаю, поэтому, если хотите помочь - пишите, какую дополнительную информацию ещё написать. Спасибо за внимание.
dedyshka вне форума Ответить с цитированием
Старый 10.11.2009, 20:24   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,160
По умолчанию

нужно знать структуру БД, назначение полей, и цель этого запроса...
опять же - какой двиг... ведь это он выдает ошибку... а что он понимает под неправильным запросом?

вот на первый взгляд везде используются p. c. po. итд.... типа алиасы... но нигде не определены в этом запросе.... может есть предварительные?
ADSoft вне форума Ответить с цитированием
Старый 10.11.2009, 20:57   #3
wall66
Участник клуба
 
Аватар для wall66
 
Регистрация: 04.10.2008
Сообщений: 1,485
По умолчанию

для начала приведем запрос в человеческий вид
Код:
SELECT 
	u.userbirthday, 
	u.email, 
	u.login, 

	p.osob_points, 
	p.id_battle, 
	p.travma_type, 
	p.`2007` , 
	p.veteran, 
	p.travma_id, 
	p.travma_time, 
	p.unchaos_timestamp, 
	p.stat_points, 
	p.mast_points, 
	p.dateborn, 
	p.money, 
	p.gold, 
	p.wins, 
	p.loss, 
	p.nich, 
	p.exp, 
	p.regen_timestamp, 
	p.regeneration, 
	p.life, 
	p.mana, 
	p.sex, 
	p.shadow, 
	p.blocked, 
	p.id_city, 
	p.persname, 
	p.id_person, 
	p.level, 
	p.align, 
	p.id_clan, 
	p.clanzvan, 

	c.clanname, 
	c.clanalign, 

	ct.cityname, 
	ctt.cityname AS citycurname, 
	po.id_person AS inv

FROM person p
	LEFT JOIN clans c ON p.id_clan = c.id_clan
	LEFT JOIN city ct ON ct.id_city = p.id_cityborn
	LEFT JOIN city ctt ON ctt.id_city = p.id_city
	LEFT JOIN users u ON p.id_person = u.id_person
		LEFT JOIN person_on po ON po.id_person = u.id_person AND po.type =5

WHERE p.id_person = '22'
затем смотрим, что синтаксических ошибок нет



далее делаем логическое заключение что запрос для браузерной игры и отсылаем за дальнейшими разъяснениями к ее автору
свободен...
wall66 вне форума Ответить с цитированием
Старый 10.11.2009, 20:58   #4
dedyshka
Пользователь
 
Регистрация: 10.11.2009
Сообщений: 23
По умолчанию

а может это быть связано с тем, что в базе другая кодировка ?
dedyshka вне форума Ответить с цитированием
Старый 10.11.2009, 21:01   #5
wall66
Участник клуба
 
Аватар для wall66
 
Регистрация: 04.10.2008
Сообщений: 1,485
По умолчанию

Цитата:
Сообщение от dedyshka Посмотреть сообщение
а может это быть связано с тем, что в базе другая кодировка ?
вполне, равно как и с сотней других причин

но, ибо привести текст ошибки вы не удосужились, ничего конкретного мы вам сказать не можем


п.с. текст ошибки выдается функцией mysql_error(); после неудавшегося запроса
свободен...
wall66 вне форума Ответить с цитированием
Старый 10.11.2009, 21:25   #6
dedyshka
Пользователь
 
Регистрация: 10.11.2009
Сообщений: 23
По умолчанию

вот походу функция, откуда идёт ошибка:

PHP код:
<?php

function db_use($action$query) {

require(
"config.php");
#echo $dburl . ':' . $dbport. $dbuser. $dbpassword;
        
mysql_connect($dburl ':' $dbport$dbuser$dbpassword)
         or die(
'Не получается подключиться. Проверьте имя сервера, имя пользователя и пароль!');
        
mysql_select_db($dbname) or die('Ошибка входа в базу данных');
#echo " --- $query --- <br>";
        
mysql_query("SET NAMES cp1251;");   
        switch (
$action) {

                case 
'object':

                        
$result mysql_query($query) or die('<small><b>SQL Ошибка запроса:</b><br><font color=red>'.$query.'</font></small><br>');
                        return 
mysql_fetch_object($result);

                        break;

                case 
'array':

                        
$result mysql_query($query) or die('<small><b>SQL Ошибка запроса:</b><br><font color=red>'.$query.'</font></small><br>');
                        return 
mysql_fetch_array($result);

                        break;

                case 
'query':
                        
#mysql_query("update users set pass='".md5('чпнфк6йт5')."' where id_person=109");
                        
$result mysql_query($query) or die('<small><b>SQL Ошибка запроса:</b><br><font color=red>'.$query.'</font></small><br>');
                        return 
$result;

                        break;

                case 
'rows':

                        
$result mysql_query($query) or die('Ошипка запроса!'.$query);
                        return 
mysql_num_rows($result);

                        break;

        }

        
mysql_close();

}

?>
dedyshka вне форума Ответить с цитированием
Старый 17.11.2009, 19:01   #7
dedyshka
Пользователь
 
Регистрация: 10.11.2009
Сообщений: 23
По умолчанию

м ? .
dedyshka вне форума Ответить с цитированием
Старый 17.11.2009, 20:15   #8
dedyshka
Пользователь
 
Регистрация: 10.11.2009
Сообщений: 23
По умолчанию

`veteran` tinyint(4) default NULL,
`vip` float NOT NULL default '0'

два запроса из файла sql. объясните, пожалуйста ,чайнику - что значит tinyint(4) и какое отличие первой строчки от второй ?

Последний раз редактировалось dedyshka; 17.11.2009 в 20:25.
dedyshka вне форума Ответить с цитированием
Старый 17.11.2009, 20:27   #9
wall66
Участник клуба
 
Аватар для wall66
 
Регистрация: 04.10.2008
Сообщений: 1,485
По умолчанию

Цитата:
Сообщение от dedyshka Посмотреть сообщение
...
tinyint(4) это тип данных для поля veteran, точней - знаковое целочисленное значение не помню какой длины

вторая строка, в отличие от первой, описывает совершенно другое поле, другого типа, с другим отношением к отсутствию значения и указанным значением по умолчанию
свободен...
wall66 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
запрос reBOOK SQL, базы данных 27 11.11.2009 10:07
sq запрос viperrr Помощь студентам 9 05.06.2009 02:00
запрос ссылается на несвязанный с ним запрос kolebatel SQL, базы данных 0 11.06.2008 12:50
Программа строит неправильный график xMass Помощь студентам 7 06.06.2008 19:04
Неправильный вывод данных из стека С++ Cyberex Общие вопросы C/C++ 3 07.05.2008 16:53