Модераторы: PILOT
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Укажите на ошибку, обработка текстового файла 
:(
    Опции темы
Emkill
Дата 24.7.2007, 22:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 3.3.2006

Репутация: нет
Всего: нет



Доброго времени суток.
Прошу указать на ошибки допущенные мною при создании PHP скрипта.

Нужно обработать 3 разных текстовых докумкнтов.
Есть БД, конфигурационный файл и 3 скрипта. ( см. ниже )

Дамп БД:

Код

-- 
-- Структура таблицы `clan_sostav`
-- 

CREATE TABLE `clan_sostav` (
  `id` int(11) NOT NULL auto_increment,
  `name` varchar(32) default NULL,
  `sid` int(11) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=DEFAULT CHARSET=koi8r AUTO_INCREMENT=95 ;

-- 
-- Структура таблицы `align`
-- 

CREATE TABLE `align` (
  `cname` longtext NOT NULL,
  `cp` int(11) NOT NULL default '0',
  `cup` int(11) NOT NULL default '0',
  `cpoint` int(11) NOT NULL default '0',
  `cpers` int(11) NOT NULL default '0',
  `cperschange` int(11) NOT NULL default '0',
  `cmiddle` int(11) NOT NULL default '0',
  `cmiddles` int(11) NOT NULL default '0',
  `cu` int(11) NOT NULL default '0'
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

-- 
-- Структура таблицы `rchars`
-- 

CREATE TABLE `rchars` (
  `cname` varchar(60) NOT NULL default '',
  `cpoint` int(11) NOT NULL default '0',
  `cup` int(11) NOT NULL default '0',
  `cp` int(11) NOT NULL default '0',
  `cu` int(11) NOT NULL default '0',
  `id` int(11) NOT NULL auto_increment,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=koi8r AUTO_INCREMENT=820 ;

-- 
-- Структура таблицы `rclans`
-- 

CREATE TABLE `rclans` (
  `cname` varchar(60) NOT NULL default '',
  `cpoint` int(11) NOT NULL default '0',
  `cup` int(11) NOT NULL default '0',
  `cp` int(11) NOT NULL default '0',
  `cu` int(11) NOT NULL default '0',
  `id` int(11) NOT NULL auto_increment,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=koi8r AUTO_INCREMENT=124 ;

-- 
-- Структура таблицы `rnpc`
-- 

CREATE TABLE `rnpc` (
  `cname` varchar(60) NOT NULL default '',
  `cpoint` int(11) NOT NULL default '0',
  `cup` int(11) NOT NULL default '0',
  `cp` int(11) NOT NULL default '0',
  `cu` int(11) NOT NULL default '0',
  `id` int(11) NOT NULL auto_increment,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=koi8r AUTO_INCREMENT=1341 ;



Кофигурационный файл (config.php):

Код

<?php

$hostname = '';
$username = '';
$password = '';
$dbName = '';
$altable = "align"; 
$userstable = "rclans"; 
$ustable = "rchars"; 
$npctable = "rnpc";
$bgcolor_highlited = "#7F7FFF";
$bgcolor_normal = "F0F0F0";
$main_bgcolor = "#FF0000";
$fontcolor = "#000000";
$clanznakLICENSEDBYOTRIX='';
$clannameLICENSEDBYOTRIX='';
?>


Скрипты:
1й скрипт, выводит неполностью данные  (rchars.php):

Код

<?
include('config.php');
error_reporting(0);
mysql_connect($hostname,$username,$password) or die(mysql_error());
mysql_select_db($dbName) or die(mysql_error()) or die(mysql_error()); 
mysql_query("SET character_set_client='cp1251'");
mysql_query("SET character_set_connection='cp1251'");
mysql_query("SET character_set_results='cp1251'");

        echo"<center><b>Рейтинг Игроков</b><br><br>";

                $clans = fopen("http://service.neverlands.ru/rate/players.txt","r");
echo "<table border=0 cellspacing=1 cellpadding=1 class=centr_table width=400><tr bgcolor=$main_bgcolor align=center><td width=50><b>&nbsp;#&nbsp;</b></td><td><b width=225>Ник</b></td><td width=85><b>&nbsp;Очки&nbsp;</b></td></tr>";
$pos = 1;
$row = 0;
while ($data = fgetcsv($clans, 1000, "|"))
{
        if ($row != 1) {


        $cname = $data[2];
$cpoint = $data[4];
$cup = $pos;


$request = "SELECT cname FROM $ustable  WHERE cname='$cname'";
$r = mysql_query($request);
$rws = mysql_fetch_row($r);

if ($rws == '0') {
    mysql_query("INSERT  $ustable(cname,cpoint,cup) VALUES ('$cname','$cpoint','$pos')") or die(MySQL_error());
} else {
    $request = "SELECT cpoint, cp, cup FROM $ustable  WHERE cname='$cname'";
    $r = mysql_query($request);
    while ($rows = mysql_fetch_row($r)) {
           $check_point = $cpoint - $rows[0];
           $check_up = $rows[2] - $pos;
           if ($check_point != '0') {
               mysql_query("UPDATE $ustable SET cpoint='$cpoint', cup='$cup', cp='$check_point', cu='$check_up' WHERE cname='$cname'") or die(mysql_error());
           }
    }

}

$requestp = "SELECT  cp, cu FROM $ustable  WHERE cname='$cname'";
    $rp = mysql_query($requestp);
    while ($rowsp = mysql_fetch_row($rp)) {
     $view_point = $rowsp[0];
     $view_up = $rowsp[1];
    }

if ($view_point >= '1') {$view_point = '<font color=green style="font-size: 9px;">(+'.$view_point.'</a>)</font>';}
if ($view_point <= '-1') {$view_point = '<font color=red style="font-size: 9px;">('.$view_point.'</a>)</font>';}
if ($view_up >= '1') {$view_up = '<font color=green style="font-size: 9px;">(+'.$view_up.'</a>)</font>';}
if ($view_up <= '-1') {$view_up = '<font color=red style="font-size: 9px;">('.$view_up.'</a>)</font>';}
if ($view_up == '0') {$view_up = '';}
if ($view_point == '0') {$view_point = '';}

        for ($c=0;$c<count($data); $c++)
                {

                 if ($data[1] == $clanznakLICENSEDBYOTRIX) {
                  $bgclr = $bgcolor_highlited;
                 } else {
                   $bgclr = $bgcolor_normal;
                    }
                if ($c == 0)
                        switch ($data[$c])
                        {
                        case "0": $data[$c] = "<tr bgcolor=".$bgclr."><td align=center><b><font color=$fontcolor>".$pos." </font></b>".$view_up."</td><td>&nbsp;"; break;
                        case "1": $data[$c] = "<tr bgcolor=".$bgclr."><td align=center><b><font color=$fontcolor>".$pos." </font></b>".$view_up."</td><td>&nbsp;<img src=http://image.neverlands.ru/signs/darks.gif border=0> "; break;
                        case "2": $data[$c] = "<tr bgcolor=".$bgclr."><td align=center><b><font color=$fontcolor>".$pos." </font></b>".$view_up."</td><td>&nbsp;<img src=http://image.neverlands.ru/signs/lights.gif border=0> "; break;
                        case "3": $data[$c] = "<tr bgcolor=".$bgclr."><td align=center><b><font color=$fontcolor>".$pos." </font></b>".$view_up."</td><td>&nbsp;<img src=http://image.neverlands.ru/signs/sumers.gif border=0> "; break;
                        case "4": $data[$c] = "<tr bgcolor=".$bgclr."><td align=center><b><font color=$fontcolor>".$pos." </font></b>".$view_up."</td><td>&nbsp;<img src=http://image.neverlands.ru/signs/chaoss.gif border=0> "; break;
                        case "9": $data[$c] = "<tr bgcolor=".$bgclr."><td align=center><b><font color=$fontcolor>".$pos." </font></b>".$view_up."</td><td>&nbsp;<img src=http://image.neverlands.ru/signs/angel.gif border=0> "; break;
                        }
                if ($c == 1)
                        if ($data[$c] == "none")
                        $data[$c] = ""; else

                        $data[$c] = "<img src=http://image.neverlands.ru/signs/".$data[$c]." border=0> ";



                if ($c == 2){
                        $pos++;
                        $login = $data[$c];

                        $data[$c] = "<font color=$fontcolor>$data[$c]</font>";
                        }

                if ($c == 3)
                $data[$c] = "<font color=$fontcolor> [".$data[$c]."] <a href=\"http://www.neverlands.ru/pinfo.cgi?".$login."\" target=_blank><img src=http://image.neverlands.ru/chat/info.gif border=0></a></font></td>";

                if ($c == 4)
                $data[$c] = "<td align=left><font color=$fontcolor><b>".$data[$c]."</b> ".$view_point."</font></td>";

                echo $data[$c];
                } }
        echo "</tr>";
        $row++;
}
echo "</table></center>";
fclose($clans);

?>


2й скрипт, невыводит русские названия (rclans.php):

Код

<?
include('config.php');
error_reporting(0);
mysql_connect($hostname,$username,$password) or die(mysql_error());
mysql_query("SET NAMES 'cp1251'");
mysql_select_db($dbName) or die(mysql_error()) or die(mysql_error()); 



        echo"<center><b>Рейтинг Кланов</b><br><br>";

$clans = fopen("http://service.neverlands.ru/rate/clans.txt","r");

echo "<table border=0 cellspacing=1 cellpadding=1 class=centr_table width=400><tr bgcolor=$main_bgcolor align=center><td width=50><b>&nbsp;#&nbsp;</b></td><td><b width=225>Клан</b></td><td width=85><b>&nbsp;Очки&nbsp;</b></td></tr>";
$pos = 0;
$row = 0;
while ($data = fgetcsv($clans, 1000, "|"))
{
        if ($row != 1) {


$cname = $data[2];
$cpoint = $data[3];
$cup = $pos;


$request = "SELECT cname FROM $userstable  WHERE cname='$cname'";
$r = mysql_query($request);
$rws = mysql_fetch_row($r);

if ($rws == '0') {
    mysql_query("INSERT  $userstable(cname,cpoint,cup) VALUES ('$cname','$cpoint','$pos')") or die(MySQL_error());
} else {
    $request = "SELECT cpoint, cp, cup FROM $userstable  WHERE cname='$cname'";
    $r = mysql_query($request);
    while ($rows = mysql_fetch_row($r)) {
           $check_point = $cpoint - $rows[0];
           $check_up = $rows[2] - $pos;
           if ($check_point != '0') {
               mysql_query("UPDATE $userstable SET cpoint='$cpoint', cup='$cup', cp='$check_point', cu='$check_up' WHERE cname='$cname'") or die(mysql_error());
           }
    }

}

$requestp = "SELECT  cp, cu FROM $userstable  WHERE cname='$cname'";
    $rp = mysql_query($requestp);
    while ($rowsp = mysql_fetch_row($rp)) {
     $view_point = $rowsp[0];
     $view_up = $rowsp[1];
    }

if ($view_point >= '1') {$view_point = '<font color=green style="font-size: 9px;">(+'.$view_point.'</a>)</font>';}
if ($view_point <= '-1') {$view_point = '<font color=red style="font-size: 9px;">('.$view_point.'</a>)</font>';}
if ($view_up >= '1') {$view_up = '<font color=green style="font-size: 9px;">(+'.$view_up.'</a>)</font>';}
if ($view_up <= '-1') {$view_up = '<font color=red style="font-size: 9px;">('.$view_up.'</a>)</font>';}
if ($view_up == '0') {$view_up = '';}
if ($view_point == '0') {$view_point = '';}

       if (isset($data[2])) {
        if ($data[2] == "$clannameLICENSEDBYOTRIX") $bgcol = $bgcolor_highlited; else $bgcol = $bgcolor_normal; }
        if (isset($data[2])) echo "<tr bgcolor=".$bgcol."><td align=center><b><font color=$fontcolor>".$pos." </font></b><font color=$fontcolor>".$view_up."</font></td>";

        $pos++;
        for ($c=0;$c<count($data)-2; $c++)
                {


                if ($c == 0)
                        switch ($data[$c])
                        {
                        case "0": $data[$c] = "<td>&nbsp;"; break;
                        case "1": $data[$c] = "<td>&nbsp;<img src=http://image.neverlands.ru/signs/darks.gif border=0> "; break;
                        case "2": $data[$c] = "<td>&nbsp;<img src=http://image.neverlands.ru/signs/lights.gif border=0> "; break;
                        case "3": $data[$c] = "<td>&nbsp;<img src=http://image.neverlands.ru/signs/sumers.gif border=0> "; break;
                        case "4": $data[$c] = "<td>&nbsp;<img src=http://image.neverlands.ru/signs/chaoss.gif border=0> "; break;
                        }

                if ($c == 1)
                        $data[$c] = "<img src=http://image.neverlands.ru/signs/".$data[$c]." border=0> ";

                if ($c == 2){

                
                if ($data[$c] == "$clanname")
                        $data[$c] = "<b>".$data[$c]."</b>";
                        $data[$c] = "<font color=$fontcolor>".$data[$c]."</font></td>";
                        }

                if ($c == 3)
                $data[$c] = '<td align=left><b><font color='.$fontcolor.'>'.$data[$c].'</font></b> '.$view_point.'</td>';

                echo $data[$c];
                } }
        echo "</tr>";
$row++;
}
fclose($clans);
echo "</table>";
?>



3й скрипт, не всё правильно выводити к томуже неправильно подсчет делает (rnpc.php):

Код

<?
include('config.php');
error_reporting(0);
mysql_connect($hostname,$username,$password) or die(mysql_error());
mysql_select_db($dbName) or die(mysql_error()) or die(mysql_error()); 
error_reporting (0);


                $clans = fopen("http://service.neverlands.ru/rate/npc.txt","r");
echo "<table border=0 cellspacing=1 cellpadding=1 class=centr_table width=400><tr bgcolor=$main_bgcolor align=center><td width=50><b>&nbsp;#&nbsp;</b></td><td><b width=225>Ник</b></td><td width=85><b>&nbsp;Очки&nbsp;</b></td></tr>";
$pos = 1;
$row = 0;
while ($data = fgetcsv($clans, 1000, "|"))
{
        if ($row != 1) {


        $cname = $data[2];
$cpoint = $data[4];
$cup = $pos;


$request = "SELECT cname FROM $npctable  WHERE cname='$cname'";
$r = mysql_query($request);
$rws = mysql_fetch_row($r);

if ($rws == '0') {
    mysql_query("INSERT  $npctable(cname,cpoint,cup) VALUES ('$cname','$cpoint','$pos')") or die(MySQL_error());
} else {
    $request = "SELECT cpoint, cp, cup FROM $npctable  WHERE cname='$cname'";
    $r = mysql_query($request);
    while ($rows = mysql_fetch_row($r)) {
           $check_point = $cpoint - $rows[0];
           $check_up = $rows[2] - $pos;
           if ($check_point != '0') {
               mysql_query("UPDATE $npctable SET cpoint='$cpoint', cup='$cup', cp='$check_point', cu='$check_up' WHERE cname='$cname'") or die(mysql_error());
           }
    }

}

$requestp = "SELECT  cp, cu FROM $npctable  WHERE cname='$cname'";
    $rp = mysql_query($requestp);
    while ($rowsp = mysql_fetch_row($rp)) {
     $view_point = $rowsp[0];
     $view_up = $rowsp[1];
    }

if ($view_point >= '1') {$view_point = '<font color=green style="font-size: 9px;">(+'.$view_point.'</a>)</font>';}
if ($view_point <= '-1') {$view_point = '<font color=red style="font-size: 9px;">('.$view_point.'</a>)</font>';}
if ($view_up >= '1') {$view_up = '<font color=green style="font-size: 9px;">(+'.$view_up.'</a>)</font>';}
if ($view_up <= '-1') {$view_up = '<font color=red style="font-size: 9px;">('.$view_up.'</a>)</font>';}
if ($view_up == '0') {$view_up = '';}
if ($view_point == '0') {$view_point = '';}

        for ($c=0;$c<count($data); $c++)
                {

                 if ($data[1] == $clanznakLICENSEDBYOTRIX) {
                  $bgclr = $bgcolor_highlited;
                 } else {
                   $bgclr = $bgcolor_normal;
                    }
                if ($c == 0)
                        switch ($data[$c])
                        {
                        case "0": $data[$c] = "<tr bgcolor=".$bgclr."><td align=center><b><font color=$fontcolor>".$pos." </font></b>".$view_up."</td><td>&nbsp;"; break;
                        case "1": $data[$c] = "<tr bgcolor=".$bgclr."><td align=center><b><font color=$fontcolor>".$pos." </font></b>".$view_up."</td><td>&nbsp;<img src=http://image.neverlands.ru/signs/darks.gif border=0> "; break;
                        case "2": $data[$c] = "<tr bgcolor=".$bgclr."><td align=center><b><font color=$fontcolor>".$pos." </font></b>".$view_up."</td><td>&nbsp;<img src=http://image.neverlands.ru/signs/lights.gif border=0> "; break;
                        case "3": $data[$c] = "<tr bgcolor=".$bgclr."><td align=center><b><font color=$fontcolor>".$pos." </font></b>".$view_up."</td><td>&nbsp;<img src=http://image.neverlands.ru/signs/sumers.gif border=0> "; break;
                        case "4": $data[$c] = "<tr bgcolor=".$bgclr."><td align=center><b><font color=$fontcolor>".$pos." </font></b>".$view_up."</td><td>&nbsp;<img src=http://image.neverlands.ru/signs/chaoss.gif border=0> "; break;
                        case "9": $data[$c] = "<tr bgcolor=".$bgclr."><td align=center><b><font color=$fontcolor>".$pos." </font></b>".$view_up."</td><td>&nbsp;<img src=http://image.neverlands.ru/signs/angel.gif border=0> "; break;
                        }
                if ($c == 1)
                        if ($data[$c] == "none")
                        $data[$c] = ""; else

                        $data[$c] = "<img src=http://image.neverlands.ru/signs/".$data[$c]." border=0> ";



                if ($c == 2){
                        $pos++;
                        $login = $data[$c];

                        $data[$c] = "<font color=$fontcolor>$data[$c]</font>";
                        }

                if ($c == 3)
                $data[$c] = "<font color=$fontcolor> [".$data[$c]."] <a href=\"http://www.neverlands.ru/pinfo.cgi?".$login."\" target=_blank><img src=http://image.neverlands.ru/chat/info.gif border=0></a></font></td>";

                if ($c == 4)
                $data[$c] = "<td align=left><font color=$fontcolor><b>".$data[$c]."</b> ".$view_point."</font></td>";

                echo $data[$c];
                } }
        echo "</tr>";
        $row++;
}
echo "</table></center>";
fclose($clans);

?>


Прошу указать на ошибку, и желательно скинуть исправленный код. 
Спасибо за внимание



Это сообщение отредактировал(а) PARROT - 25.7.2007, 09:02
PM MAIL   Вверх
DioNiR
Дата 26.7.2007, 07:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 30.12.2006

Репутация: нет
Всего: нет



Собственно не понял суть темы ты даёшь код чтобы проверили правильно ли сделал или у тебя где то ошибка?

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

Приведу пример:
На 18 строчке первого скрипта ты написал так:
Код
if ($row != 1) {

И уже на 30 ты пишешь так:
Код
if ($rws == '0') {

Для чего использовать разный стиль?
Пишешь с кавычками так делай везде так.
Нет то чиста пиши без них.
В третьем скрипте 2 раза написано:
Код
error_reporting(0);





--------------------
Думали это конец? Ха, всё только начинается.
PM MAIL   Вверх
smartov
Дата 26.7.2007, 09:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: нет
Всего: 259



Emkill, я думаю, камрад, у людей есть свои заботы, и им не особо интересно просерять твои три скрипта общей длиной более 300 строк.
Если бы было 30 строк - тебе б еще помогли. А так...
PM MAIL   Вверх
Emkill
Дата 26.7.2007, 23:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 3.3.2006

Репутация: нет
Всего: нет



smartov, ну почему же неинтересно ? 
мне например интересно, 
Я могу и заплатить впринципе smile
PM MAIL   Вверх
smartov
Дата 27.7.2007, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: нет
Всего: 259



Emkill, тык за деньги это нужно было сразу в другой раздел обращаться.

А что ты именно узнать то хочешь. У тебя что-то не работает скриптах или ты про ошибки в общем?
PM MAIL   Вверх
Emkill
Дата 29.7.2007, 20:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 3.3.2006

Репутация: нет
Всего: нет



Уважаемый по возможности 120100020 моя аська, я всегда онлайн но в инвизе.
А вообще да, неработает кое что.
например есть таблица clan_sostav, вбивая в неё англ всё нормально, как только вбиваю русские, все виснет намертво... 
Понимаю, что, что-то с кодировкой, но что именно ? 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Объявления о найме специалистов"
BearBeer
  • Придерживайтесь правил форума.

  • Если вы предлагаете НЕ удалённую работу, то

    название города и фирмы обязательно указывать уже в названии темы(!)

  • Одна вакансия - одна тема.

    Вам будет удобней следить за ответами, ищущим работу - выбирать.


  • В случае, если у нас возникнут обоснованные подозрения

    о неблагонадежности Вашего электронного адреса, ваш аккаунт будет удалён, а доступ к форуму запрещён!


  • Хотите быстрее найти специалиста? Разместите тогда ваше объявление вверху всех страниц сайта! Тогда его будут ежедневно видеть более 4000 программистов! Обратите внимание на верхний левый угол сайта - там вы найдете дополнительные инструкции при клике на линк.

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


Полный спискок правил. С уважением, BearBeer.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Объявления о найме специалистов | Следующая тема »


 




[ Время генерации скрипта: 0.1274 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.