ФорумРазработкаБазы данных → Уважаемые програмисты пыхи открываю еще одну тму на обсуждение

Уважаемые програмисты пыхи открываю еще одну тму на обсуждение

  • Александр2010

    Сообщения: 116 Репутация: N Группа: Кто попало

    Spritz 19 августа 2010 г. 21:15

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

    Вот код :

    <? include("blocks/db.php");?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
    <title>Добавление нового пользователя</title>
    <link href="css/staly.css" rel="stylesheet" type="text/css" />
    </head>

    <body>
    <table width="1024" border="0" cellpadding="0" cellspacing="0" align="center">
    <tr>
    <td><img src="img/1.gif" width="13" height="13" /></td>
    <td class="bordertop"></td>
    <td><img src="img/2.gif" width="13" height="13" /></td>
    </tr>
    <tr>
    <td class="borderleft">&nbsp;</td>
    <td>
    <table width="1024" border="0" height="100%" cellpadding="0" cellspacing="0" align="center">
    <tr></tr>
    <? include("blocks/header.php");?>
    <tr>
    <td height="306" valign="top" bgcolor="#FFFFFF"><table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0" class="menu">
    <tr>
    <? include("blocks/menu.php");?>
    <td width="774" bgcolor="#FFFFFF">
    <?

    $a =1 ;


    $result3 = mysql_query ("INSERT INTO login (login,pasword) VALUES ('$login','$pasword')");

    if ($result3 == 'true') {echo "<p>Пользователь добавлен и может зайти в кабинет</p>";}

    else

    {
    echo '<p>Все поля отмеченные * Должны быть заполнены</p>';
    }



    $result8 = mysql_query ("SELECT ref FROM users WHERE login= '$login'");
    $myrow8 = mysql_fetch_array($result8);

    $sponsor = $myrow8['ref'];

    $result5 = mysql_query ("SELECT * FROM matrix2 WHERE login ='$sponsor' AND ref6 REGEXP '^[0-9]+$'");
    $myrow5 = mysql_fetch_array($result5);
    $g1 = $ref1 = $myrow5['ref1'];
    $g2 = $ref2 = $myrow5['ref2'];
    $g3 = $ref3 = $myrow5['ref3'];
    $g4 = $ref4 = $myrow5['ref4'];
    $g5 = $ref5 = $myrow5['ref5'];
    $g6 = $ref6 = $myrow5['ref6'];
    $ref7 = $myrow5['matrix'];


    if (preg_match("|^[\d]+$|",$ref1))
    {
    $ref1 = $login;
    }
    else
    {
    if (preg_match("|^[\d]+$|",$ref2) and $login != $ref1)
    {
    $ref2 = $login ;
    }
    else
    {
    if (preg_match("|^[\d]+$|",$ref3) and $login != $ref2 and $login != $ref1)
    {
    $ref3 = $login ;
    }
    else
    {
    if (preg_match("|^[\d]+$|",$ref4) and $login != $ref3 and $login != $ref2 and $login != $ref1)
    {
    $ref4 = $login;
    }
    else
    {
    if (preg_match("|^[\d]+$|",$ref5) and $login != $ref4 and $login != $ref3 and $login != $ref2 and $login != $ref1)
    {
    $ref5 = $login;
    }
    else
    {
    if (preg_match("|^[\d]+$|",$ref6) and $login != $ref5 and $login != $ref4 and $login != $ref3 and $login != $ref2 and $login != $ref1)
    {
    $ref6 = $login;
    }
    }
    }
    }
    }
    }


    $result7 = mysql_query ("UPDATE matrix2 SET ref1='$ref1' ,ref2='$ref2' ,ref3='$ref3' ,ref4='$ref4' ,ref5='$ref5' ,ref6='$ref6' WHERE matrix ='$ref7' AND login ='$sponsor'");



    $result4 = mysql_query ("SELECT * FROM users WHERE login = '$login'");
    $myrow4 = mysql_num_rows($result4);

    $matrix = "$login-$a" ;

    if ($row4 = mysql_fetch_array($result4))
    {

    if (preg_match("|^[\d]+$|",$g1))
    {
    $result8 = mysql_query ("UPDATE matrix2 SET login ='$login' ,matrix ='$matrix' ,aid ='$a' WHERE id ='$g1'");
    }
    else
    {
    if (preg_match("|^[\d]+$|",$g2))
    {
    $result9 = mysql_query ("UPDATE matrix2 SET login ='$login' ,matrix ='$matrix' ,aid ='$a' WHERE id ='$g2'");
    }
    else
    {
    if (preg_match("|^[\d]+$|",$g3))
    {
    $result10 = mysql_query ("UPDATE matrix2 SET login ='$login' ,matrix ='$matrix' ,aid ='$a' WHERE id ='$g3'");
    }
    else
    {
    if (preg_match("|^[\d]+$|",$g4))
    {
    $result11 = mysql_query ("UPDATE matrix2 SET login ='$login' ,matrix ='$matrix' ,aid ='$a' WHERE id ='$g4'");
    }
    else
    {
    if (preg_match("|^[\d]+$|",$g5))
    {
    $result12 = mysql_query ("UPDATE matrix2 SET login ='$login' ,matrix ='$matrix' ,aid ='$a' WHERE id ='$g5'");
    }
    else
    {
    if (preg_match("|^[\d]+$|",$g6))
    {
    $result13 = mysql_query ("UPDATE matrix2 SET login ='$login' ,matrix ='$matrix' ,aid ='$a' WHERE id ='$g6'");
    }
    }
    }
    }
    }
    }

    }


    $ids = 1;

    $result14 = mysql_query("SELECT ref3 FROM matrix2 WHERE login ='$sponsor' AND ids != '$ids'");
    $myrow14 =mysql_fetch_array($result14);
    $r1 = $myrow14['ref3'];
    $result15 = mysql_query("UPDATE matrix2 SET ref1 ='$r1' WHERE ref1='$g3' AND ids !='$ids'");
    $result16 = mysql_query ("SELECT ref4 FROM matrix2 WHERE login ='$sponsor' AND ids != '$ids'");
    $myrow16 =mysql_fetch_array($result16);
    $r2 = $myrow16['ref4'];
    $result17 = mysql_query("UPDATE matrix2 SET ref2 ='$r2' WHERE ref2='$g4' AND ids !='$ids'");
    $result18 = mysql_query("SELECT ref5 FROM matrix2 WHERE login = '$sponsor' AND ids !='$ids'");
    $myrow18 = mysql_fetch_array($result18);
    $r3 = $myrow18['ref5'];
    $result19 = mysql_query ("UPDATE matrix2 SET ref1 ='$r3' WHERE ref1='$g5' AND ids !='$ids'");
    $result20 = mysql_query ("SELECT ref6 FROM matrix2 WHERE login ='$sponsor' AND ids != '$ids'");
    $myrow20 =mysql_fetch_array($result20);
    $r4 = $myrow20['ref6'];
    $result21 = mysql_query ("UPDATE matrix2 SET ref2 ='$r4' WHERE ref2 ='$g6' AND ids != '$ids'");


    if (preg_match("|^[\d]+$|",$g1))
    {
    $result22 = mysql_query ("SELECT ref1 FROM matrix2 WHERE login ='$g1' AND ids != '$ids'");
    $myrow22 = mysql_fetch_array($result22);
    $r5 = $myrow22['ref1'];
    $result23 = mysql_query ("UPDATE matrix2 SET ref3 ='$login' WHERE ref3 ='$g1' AND ids !='$ids'");
    }
    else
    {
    if (preg_match("|^[\d]+$|",$g2))
    {
    $result24 = mysql_query ("SELECT ref2 FROM matrix2 WHERE login ='$g2' AND ids !='$ids'");
    $myrow24 = mysql_fetch_array($result24);
    $r6 = $myrow24['ref2'];
    $result25 = mysql_query ("UPDATE matrix2 SET ref4 = '$login' WHERE ref4 = '$g2' AND ids !='$ids'");
    }
    }
    if (preg_match("|^[\d]+$|",$g1))
    {
    $result22 = mysql_query ("SELECT ref1 FROM matrix2 WHERE login ='$g1' AND ids !='$ids'");
    $myrow22 = mysql_fetch_array($result22);
    $r5 = $myrow22['ref1'];
    $result23 = mysql_query ("UPDATE matrix2 SET ref5 ='$login' WHERE ref5 ='$g1' AND ids != '$ids'");
    }
    else
    {
    if (preg_match("|^[\d]+$|",$g2))
    {
    $result24 = mysql_query ("SELECT ref2 FROM matrix2 WHERE login ='$g2' AND ids !='$ids'");
    $myrow24 = mysql_fetch_array($result24);
    $r6 = $myrow24['ref2'];
    $result25 = mysql_query ("UPDATE matrix2 SET ref6 = '$login' WHERE ref6 = '$g2' AND ids !='$ids'");
    }
    }


    $result28 = mysql_query("INSERT INTO struktura (login) VALUES ('$sponsor')");
    $result29 = mysql_query("UPDATE struktura SET ref1 = '$login' WHERE ref1 ='' AND login = '$sponsor'");




    ?>


    </td>
    </tr>
    </table></td>
    </tr>
    <? include("blocks/footer.php");?>
    </table></td>
    <td class="borderrigt">&nbsp;</td>
    </tr>
    <tr>
    <td><img src="img/4.gif" width="13" height="13" /></td>
    <td class="borderbot"></td>
    <td><img src="img/3.gif" width="13" height="13" /></td>
    </tr>
    </table>
    <p>&nbsp;</p>
    </body>
    </html>
    Спустя 69 сек.
    Нужно сделать его как можно более скоростным в работе
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 19 августа 2010 г. 21:23, спустя 8 минут 23 секунды

    Александр2010, есть два варианта:
    либо увеличить мощность сервера, где скрипт исполняется либо попридержать секундную стрелку часов =)))
  • VaseninM

    Сообщения: 2416 Репутация: N Группа: Адекваты

    Spritz 19 августа 2010 г. 21:24, спустя 1 минуту 2 секунды

    <? include("blocks/db.php");?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
    <title>Добавление нового пользователя</title>
    <link href="css/staly.css" rel="stylesheet" type="text/css" />
    </head>

    <body>
    <table width="1024" border="0" cellpadding="0" cellspacing="0" align="center">
    <tr>
    <td><img src="img/1.gif" width="13" height="13" /></td>
    <td class="bordertop"></td>
    <td><img src="img/2.gif" width="13" height="13" /></td>
    </tr>
    <tr>
    <td class="borderleft">&nbsp;</td>
    <td>
    <table width="1024" border="0" height="100%" cellpadding="0" cellspacing="0" align="center">
    <tr></tr>
    <? include("blocks/header.php");?>
    <tr>
    <td height="306" valign="top" bgcolor="#FFFFFF"><table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0" class="menu">
    <tr>
    <? include("blocks/menu.php");?>
    <td width="774" bgcolor="#FFFFFF">
    <?

    $a =1 ;


    $result3 = mysql_query ("INSERT INTO login (login,pasword) VALUES ('$login','$pasword')");

    if ($result3 == 'true') {echo "<p>Пользователь добавлен и может зайти в кабинет</p>";}

    else

    {
    echo '<p>Все поля отмеченные * Должны быть заполнены</p>';
    }



    $result8 = mysql_query ("SELECT ref FROM users WHERE login= '$login'");
    $myrow8 = mysql_fetch_array($result8);

    $sponsor = $myrow8['ref'];

    $result5 = mysql_query ("SELECT * FROM matrix2 WHERE login ='$sponsor' AND ref6 REGEXP '^[0-9]+$'");
    $myrow5 = mysql_fetch_array($result5);
    $g1 = $ref1 = $myrow5['ref1'];
    $g2 = $ref2 = $myrow5['ref2'];
    $g3 = $ref3 = $myrow5['ref3'];
    $g4 = $ref4 = $myrow5['ref4'];
    $g5 = $ref5 = $myrow5['ref5'];
    $g6 = $ref6 = $myrow5['ref6'];
    $ref7 = $myrow5['matrix'];


    if (preg_match("|^[\d]+$|",$ref1))
    {
    $ref1 = $login;
    }
    else
    {
    if (preg_match("|^[\d]+$|",$ref2) and $login != $ref1)
    {
    $ref2 = $login ;
    }
    else
    {
    if (preg_match("|^[\d]+$|",$ref3) and $login != $ref2 and $login != $ref1)
    {
    $ref3 = $login ;
    }
    else
    {
    if (preg_match("|^[\d]+$|",$ref4) and $login != $ref3 and $login != $ref2 and $login != $ref1)
    {
    $ref4 = $login;
    }
    else
    {
    if (preg_match("|^[\d]+$|",$ref5) and $login != $ref4 and $login != $ref3 and $login != $ref2 and $login != $ref1)
    {
    $ref5 = $login;
    }
    else
    {
    if (preg_match("|^[\d]+$|",$ref6) and $login != $ref5 and $login != $ref4 and $login != $ref3 and $login != $ref2 and $login != $ref1)
    {
    $ref6 = $login;
    }
    }
    }
    }
    }
    }


    $result7 = mysql_query ("UPDATE matrix2 SET ref1='$ref1' ,ref2='$ref2' ,ref3='$ref3' ,ref4='$ref4' ,ref5='$ref5' ,ref6='$ref6' WHERE matrix ='$ref7' AND login ='$sponsor'");



    $result4 = mysql_query ("SELECT * FROM users WHERE login = '$login'");
    $myrow4 = mysql_num_rows($result4);

    $matrix = "$login-$a" ;

    if ($row4 = mysql_fetch_array($result4))
    {

    if (preg_match("|^[\d]+$|",$g1))
    {
    $result8 = mysql_query ("UPDATE matrix2 SET login ='$login' ,matrix ='$matrix' ,aid ='$a' WHERE id ='$g1'");
    }
    else
    {
    if (preg_match("|^[\d]+$|",$g2))
    {
    $result9 = mysql_query ("UPDATE matrix2 SET login ='$login' ,matrix ='$matrix' ,aid ='$a' WHERE id ='$g2'");
    }
    else
    {
    if (preg_match("|^[\d]+$|",$g3))
    {
    $result10 = mysql_query ("UPDATE matrix2 SET login ='$login' ,matrix ='$matrix' ,aid ='$a' WHERE id ='$g3'");
    }
    else
    {
    if (preg_match("|^[\d]+$|",$g4))
    {
    $result11 = mysql_query ("UPDATE matrix2 SET login ='$login' ,matrix ='$matrix' ,aid ='$a' WHERE id ='$g4'");
    }
    else
    {
    if (preg_match("|^[\d]+$|",$g5))
    {
    $result12 = mysql_query ("UPDATE matrix2 SET login ='$login' ,matrix ='$matrix' ,aid ='$a' WHERE id ='$g5'");
    }
    else
    {
    if (preg_match("|^[\d]+$|",$g6))
    {
    $result13 = mysql_query ("UPDATE matrix2 SET login ='$login' ,matrix ='$matrix' ,aid ='$a' WHERE id ='$g6'");
    }
    }
    }
    }
    }
    }

    }


    $ids = 1;

    $result14 = mysql_query("SELECT ref3 FROM matrix2 WHERE login ='$sponsor' AND ids != '$ids'");
    $myrow14 =mysql_fetch_array($result14);
    $r1 = $myrow14['ref3'];
    $result15 = mysql_query("UPDATE matrix2 SET ref1 ='$r1' WHERE ref1='$g3' AND ids !='$ids'");
    $result16 = mysql_query ("SELECT ref4 FROM matrix2 WHERE login ='$sponsor' AND ids != '$ids'");
    $myrow16 =mysql_fetch_array($result16);
    $r2 = $myrow16['ref4'];
    $result17 = mysql_query("UPDATE matrix2 SET ref2 ='$r2' WHERE ref2='$g4' AND ids !='$ids'");
    $result18 = mysql_query("SELECT ref5 FROM matrix2 WHERE login = '$sponsor' AND ids !='$ids'");
    $myrow18 = mysql_fetch_array($result18);
    $r3 = $myrow18['ref5'];
    $result19 = mysql_query ("UPDATE matrix2 SET ref1 ='$r3' WHERE ref1='$g5' AND ids !='$ids'");
    $result20 = mysql_query ("SELECT ref6 FROM matrix2 WHERE login ='$sponsor' AND ids != '$ids'");
    $myrow20 =mysql_fetch_array($result20);
    $r4 = $myrow20['ref6'];
    $result21 = mysql_query ("UPDATE matrix2 SET ref2 ='$r4' WHERE ref2 ='$g6' AND ids != '$ids'");


    if (preg_match("|^[\d]+$|",$g1))
    {
    $result22 = mysql_query ("SELECT ref1 FROM matrix2 WHERE login ='$g1' AND ids != '$ids'");
    $myrow22 = mysql_fetch_array($result22);
    $r5 = $myrow22['ref1'];
    $result23 = mysql_query ("UPDATE matrix2 SET ref3 ='$login' WHERE ref3 ='$g1' AND ids !='$ids'");
    }
    else
    {
    if (preg_match("|^[\d]+$|",$g2))
    {
    $result24 = mysql_query ("SELECT ref2 FROM matrix2 WHERE login ='$g2' AND ids !='$ids'");
    $myrow24 = mysql_fetch_array($result24);
    $r6 = $myrow24['ref2'];
    $result25 = mysql_query ("UPDATE matrix2 SET ref4 = '$login' WHERE ref4 = '$g2' AND ids !='$ids'");
    }
    }
    if (preg_match("|^[\d]+$|",$g1))
    {
    $result22 = mysql_query ("SELECT ref1 FROM matrix2 WHERE login ='$g1' AND ids !='$ids'");
    $myrow22 = mysql_fetch_array($result22);
    $r5 = $myrow22['ref1'];
    $result23 = mysql_query ("UPDATE matrix2 SET ref5 ='$login' WHERE ref5 ='$g1' AND ids != '$ids'");
    }
    else
    {
    if (preg_match("|^[\d]+$|",$g2))
    {
    $result24 = mysql_query ("SELECT ref2 FROM matrix2 WHERE login ='$g2' AND ids !='$ids'");
    $myrow24 = mysql_fetch_array($result24);
    $r6 = $myrow24['ref2'];
    $result25 = mysql_query ("UPDATE matrix2 SET ref6 = '$login' WHERE ref6 = '$g2' AND ids !='$ids'");
    }
    }


    $result28 = mysql_query("INSERT INTO struktura (login) VALUES ('$sponsor')");
    $result29 = mysql_query("UPDATE struktura SET ref1 = '$login' WHERE ref1 ='' AND login = '$sponsor'");




    ?>


    </td>
    </tr>
    </table></td>
    </tr>
    <? include("blocks/footer.php");?>
    </table></td>
    <td class="borderrigt">&nbsp;</td>
    </tr>
    <tr>
    <td><img src="img/4.gif" width="13" height="13" /></td>
    <td class="borderbot"></td>
    <td><img src="img/3.gif" width="13" height="13" /></td>
    </tr>
    </table>
    <p>&nbsp;</p>
    </body>
    </html>
  • Александр2010

    Сообщения: 116 Репутация: N Группа: Кто попало

    Spritz 19 августа 2010 г. 21:38, спустя 13 минут 13 секунд

    Сервер стоит с 3 мя гигами оперативы я вобще непонимаю что так грузит его !
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 19 августа 2010 г. 21:54, спустя 16 минут 10 секунд

    тогда надо выяснять что именно тормозит, юзайте xdebug или XHProf
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • VaseninM

    Сообщения: 2416 Репутация: N Группа: Адекваты

    Spritz 19 августа 2010 г. 21:54, спустя 23 секунды

    Ну кинь ссылку
  • Александр2010

    Сообщения: 116 Репутация: N Группа: Кто попало

    Spritz 19 августа 2010 г. 22:00, спустя 5 минут 46 секунд

    Тормозит то что база с которой работает этот скрипт состоит из 8 миллионов строк и весит гиг . Есть какиенебуть варианты спасения от этого ?
    Спустя 35 сек.
    ссылку на что кинуть ??
  • VaseninM

    Сообщения: 2416 Репутация: N Группа: Адекваты

    Spritz 19 августа 2010 г. 22:03, спустя 2 минуты 50 секунд

    епт, ну тогда тебе надо жестко оптимизировать скрипт.
  • Александр2010

    Сообщения: 116 Репутация: N Группа: Кто попало

    Spritz 19 августа 2010 г. 22:03, спустя 27 секунд

    Есть какиенибудь быстрые решения этой проблемы ?? или какиенибуть простые уроки или видео курсы ??
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 19 августа 2010 г. 22:05, спустя 1 минуту 26 секунд

    ололол, программисты вконтакте просят помощи у пыхи :D
    Сапожник без сапог
  • Александр2010

    Сообщения: 116 Репутация: N Группа: Кто попало

    Spritz 19 августа 2010 г. 22:06, спустя 1 минуту 33 секунды

    Эх если бы я был програмистом вконтакте ((
  • VaseninM

    Сообщения: 2416 Репутация: N Группа: Адекваты

    Spritz 19 августа 2010 г. 22:07, спустя 45 секунд

    phpdude, пока чай ходил наливать - хотел прийти и спристь у тс паша ли он дуров)))
  • Александр2010

    Сообщения: 116 Репутация: N Группа: Кто попало

    Spritz 19 августа 2010 г. 22:07, спустя 30 секунд

    А так я простой программист которому заказали сайт для сетевого маркетинга myinnovacio.com
  • VaseninM

    Сообщения: 2416 Репутация: N Группа: Адекваты

    Spritz 19 августа 2010 г. 22:10, спустя 2 минуты 31 секунду

    с 8 милионами юзеров
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 19 августа 2010 г. 22:11, спустя 56 секунд

    таблицы какой тип имеют? innodb? myisam? если второй вариант, то возможно при операциях с ними, они лочатся - отсюда и пизда
    Сапожник без сапог

Пожалуйста, авторизуйтесь, чтобы написать комментарий!