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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [PHP] укажите на ошибку, обработка текстовых файлов 
:(
    Опции темы
Emkill
Дата 23.7.2007, 23:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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);

?>


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



Это сообщение отредактировал(а) Guedda - 25.7.2007, 16:40
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

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


 




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


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

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