Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 9 
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Собственно проблема в следующем, есть база, к примеру TEST? в ней существуют таблицы, со всех таблиц данные получаются, кроме одной, вот пример моего запроса:

CODE
<?php
mysql_connect("localhost","root","root") or die('Не удалось подключится к MySQL серверу. Проверьте настройки.');
mysql_select_db("TEST") or dir('Не удалось выбрать базу данных. Проверьте настойки.');

$n=1;
$query = "SELECT * FROM сhar WHERE online = 1";
$data = mysql_query($query) or die ('Не удалось получить данные из базы.');
$i=1;
while ($row=mysql_fetch_array($data))
{
$name=$row['name'];
$level=$row['base_level'];
echo "<tr><td><b><center>$n . $name . $level </center></b></td></tr>";
$n++;
}
?>

теперь даю саму базу, вернее с чего я ее ставил, возможно в самой базе есть чтото, чего я не допонимаю, так как в програмировании я не силен пока:

DROP TABLE IF EXISTS `char`;
CREATE TABLE `char` (
`char_id` int(11) unsigned NOT NULL auto_increment,
`account_id` int(11) unsigned NOT NULL default '0',
`char_num` tinyint(1) NOT NULL default '0',
`name` varchar(30) NOT NULL default '',
`class` smallint(6) unsigned NOT NULL default '0',
`base_level` smallint(6) unsigned NOT NULL default '1',
`job_level` smallint(6) unsigned NOT NULL default '1',
`base_exp` bigint(20) unsigned NOT NULL default '0',
`job_exp` bigint(20) unsigned NOT NULL default '0',
`zeny` int(11) unsigned NOT NULL default '0',
`str` smallint(4) unsigned NOT NULL default '0',
`agi` smallint(4) unsigned NOT NULL default '0',
`vit` smallint(4) unsigned NOT NULL default '0',
`int` smallint(4) unsigned NOT NULL default '0',
`dex` smallint(4) unsigned NOT NULL default '0',
`luk` smallint(4) unsigned NOT NULL default '0',
`max_hp` mediumint(8) unsigned NOT NULL default '0',
`hp` mediumint(8) unsigned NOT NULL default '0',
`max_sp` mediumint(6) unsigned NOT NULL default '0',
`sp` mediumint(6) unsigned NOT NULL default '0',
`status_point` smallint(4) unsigned NOT NULL default '0',
`skill_point` smallint(4) unsigned NOT NULL default '0',
`option` int(11) NOT NULL default '0',
`karma` tinyint(3) NOT NULL default '0',
`manner` tinyint(3) NOT NULL default '0',
`party_id` int(11) unsigned NOT NULL default '0',
`guild_id` int(11) unsigned NOT NULL default '0',
`pet_id` int(11) unsigned NOT NULL default '0',
`homun_id` int(11) unsigned NOT NULL default '0',
`hair` tinyint(4) unsigned NOT NULL default '0',
`hair_color` smallint(5) unsigned NOT NULL default '0',
`clothes_color` smallint(5) unsigned NOT NULL default '0',
`weapon` smallint(6) unsigned NOT NULL default '1',
`shield` smallint(6) unsigned NOT NULL default '0',
`head_top` smallint(6) unsigned NOT NULL default '0',
`head_mid` smallint(6) unsigned NOT NULL default '0',
`head_bottom` smallint(6) unsigned NOT NULL default '0',
`last_map` varchar(20) NOT NULL default 'prontera.gat',
`last_x` smallint(4) unsigned NOT NULL default '53',
`last_y` smallint(4) unsigned NOT NULL default '111',
`save_map` varchar(20) NOT NULL default 'prontera.gat',
`save_x` smallint(4) unsigned NOT NULL default '53',
`save_y` smallint(4) unsigned NOT NULL default '111',
`partner_id` int(11) unsigned NOT NULL default '0',
`online` tinyint(2) NOT NULL default '0',
`father` int(11) unsigned NOT NULL default '0',
`mother` int(11) unsigned NOT NULL default '0',
`child` int(11) unsigned NOT NULL default '0',
`fame` int(11) unsigned NOT NULL default '0',
PRIMARY KEY (`char_id`),
KEY `account_id` (`account_id`),
KEY `party_id` (`party_id`),
KEY `guild_id` (`guild_id`),
KEY `name` (`name`),
KEY `online` (`online`)
) TYPE=MyISAM AUTO_INCREMENT=150000;

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

Заранее спасибо!



Партнер
 

Member
Статус: Не в сети
Регистрация: 28.11.2003
Откуда: москва
Chepa писал(а):
$query = "SELECT * FROM сhar WHERE online = 1";

возможно все записи в базе имеют в столбце online значение 0.


 

нет, я просто дал код своего запроса, он при выполнении просто выдает $data = mysql_query($query) or die ('Не удалось получить данные из базы.'); данное выражение, следовательно он я как понимаю вообще не видит этой таблицы, хотя есть одна пометка, когда я считаю колличество онлайна, вот код:
$sql = mysql_query("SELECT count(*) FROM `char` WHERE online = 1");
$charonline = mysql_result($sql, 0, 0);

он выводит число реального онлайна, но как только я хочу выделить к примеру стоблец "name", он пишет вышеуказанное выражение...
вот собственно я и не могу понять почему так получается, это может быть связано как нибудь с параметром таблицы:
....
) TYPE=MyISAM AUTO_INCREMENT=150000;.....?

так как этот параметр применяется только для данной таблицы, в остальных прописано просто ") TYPE=MyISAM;" если это так, то подскажите как сделать, чтоб запрос проходил нормально?

спасибо...


 

Member
Статус: Не в сети
Регистрация: 05.12.2005
Chepa
Почему ты не пишешь вот так:
$query = "SELECT * FROM `сhar` WHERE online = 1";
Просто char это встроенный тип, может это ему и не нравиться?

А AUTO_INCREMENT=150000 - это значит, что значения в столбце char_id будут начинаться с числа 150000 (а не 1, как по умолчанию), ну и дальше с каждой записью это число будет увеличиваться.


 

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

<?php
mysql_connect("localhost","root","root") or die('Не удалось подключится к MySQL серверу. Проверьте настройки.');
mysql_select_db("TEST") or dir('Не удалось выбрать базу данных. Проверьте настойки.');

$query = "SELECT * FROM guild WHERE guild_id >= 0 ORDER BY guild_lv DESC";
$data = mysql_query ($query) or die('Не удалось получить данные из базы.');
$result = mysql_query ("SELECT count(*) FROM guild");
print '<table>
<center><caption><br><b>..:: Топ кланов ::..</b><br><br><hr></caption></center>
<thead>
<tr style="vertical-align: bottom;">
<th>Имя клана</th>
<th>Лидер</th>
<th class="sortedColumn">Уровень</th>
<th>Мемберы</th>
<th>Ср. уровень</th>
<th>Эскпа</th>
</tr>
</thead>
<tfoot>
<tr><td colspan="7" style="text-align: right;">'.ВСЕГО.': '.mysql_result($result, 0, 0).'</td></tr>
</tfoot>
<tbody id="TblBdy">
';

$i=1;
while ($row=mysql_fetch_array($data))
{
print "<tr". (($i++ % 2) ? "" : " class=\"alternateRow\"") ."><td><a href=\"index.php?d=module&p=clanview&name=". $row["name"]."\">". htmlspecialchars($row["name"]). "</a></td><td>". $row["master"]. "</td><td>".$row["guild_lv"]. "</td><td><b><font color=green>" .$row["connect_member"]. "</font></b>/<b><font color=red>" .$row["max_member"]. "</font></b></td><td>".$row["average_lv"]. "</td><td>".$row["exp"]. "</td></tr>\n";
}
print "</tbody>\n</table>\n";
mysql_close;
?>

вот сама таблица:

DROP TABLE IF EXISTS `guild`;
CREATE TABLE `guild` (
`guild_id` int(11) unsigned NOT NULL auto_increment,
`name` varchar(24) NOT NULL default '',
`char_id` int(11) unsigned NOT NULL default '0',
`master` varchar(24) NOT NULL default '',
`guild_lv` tinyint(6) unsigned NOT NULL default '0',
`connect_member` tinyint(6) unsigned NOT NULL default '0',
`max_member` tinyint(6) unsigned NOT NULL default '0',
`average_lv` smallint(6) unsigned NOT NULL default '1',
`exp` int(11) unsigned NOT NULL default '0',
`next_exp` int(11) unsigned NOT NULL default '0',
`skill_point` tinyint(11) unsigned NOT NULL default '0',
`mes1` varchar(60) NOT NULL default '',
`mes2` varchar(120) NOT NULL default '',
`emblem_len` int(11) unsigned NOT NULL default '0',
`emblem_id` int(11) unsigned NOT NULL default '0',
`emblem_data` blob,
PRIMARY KEY (`guild_id`,`char_id`),
UNIQUE KEY `guild_id` (`guild_id`),
KEY `char_id` (`char_id`)
) TYPE=MyISAM;

да, на счет одинарных ковычек, без них действительно функция $query = "SELECT count(*) FROM `сhar` WHERE online = 1"; не расчитывается, а с ковычками все путем, но других данных из таблицы я не могу получить, вот собсно и проблема в этом...


 

Member
Статус: Не в сети
Регистрация: 05.12.2005
В таком случае давай смотреть, что за ошибка возникает, пиши вот так:
$data = mysql_query ($query) or die('Не удалось получить данные из базы. Ошибка: ' . mysql_error());


 

вот что он выдал:
Не удалось получить данные из базы. Ошибка: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''char' WHERE online = 1' at line 1
судя из этого, я правильно предположил, что глюк в команде ПХП под данную версию мускула, так?


 

Member
Статус: Не в сети
Регистрация: 05.12.2005
Chepa
Он пишет, что у тебя неправильный синтаксис команды около 'char'. Все же ему не нравиться такое название таблицы. А версия php и версия базы данных не связаны.
Попробуй char в квадратные скобки заключить - [char], может так получиться... около этого короче тебе копать нужно.


 

неа, не помогло... (
Добавлено спустя 1 час, 48 минут, 14 секунд
нашол выход, вот смотрите код, правда надо будет немного подредактить и норм
Добавлено спустя 55 секунд
$data = mysql_query ("SELECT name, class, base_level, job_level FROM `char` WHERE online = 1") or die('Не удалось получить данные из базы. Ошибка: ' . mysql_error());
вот так сработало...
всем спасибо огромное


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 9 
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan