[php] Новичкам: задаем вопросы

Discussion in 'PHP' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. anakreon

    anakreon Elder - Старейшина

    Joined:
    19 Mar 2006
    Messages:
    30
    Likes Received:
    3
    Reputations:
    0
    Все конечно помогло но ситуация немного хуже. пришлось скрещивать две таблицы и LEFT JOIN конфликтует с GROUP BY

    Code:
    $x = OCIParse ( $c , "select fin.id, fin.sname, max(inf_ac.i_time), inf_ac.fin, inf_ac.l_price, inf_ac.best_buy, inf_ac.deal_max, inf_ac.deal_min from fin LEFT JOIN inf_ac ON inf_ac.fin = fin.id");
    -вот собственно кусок кода. Куда Group by вставить ума не приложу - выдает ошибки
     
  2. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    А в конце запроса
    Code:
    group by fin.id
    
    не работает?
     
  3. anakreon

    anakreon Elder - Старейшина

    Joined:
    19 Mar 2006
    Messages:
    30
    Likes Received:
    3
    Reputations:
    0
    Нет. В доках написано то надо перечислить все элементы выборки после group by
    Но такой вариант тоже не проходит, т.к. он группирует по всем, а мне надо только по одному
     
  4. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Так, а вот такой финт ушами сработает на оракле?
    Code:
    select f.id, f.sname, a.* from fin f 
    left join (
      select max(i_time) as mmaaxx, fin, l_price, best_buy, deal_max, deal_min from inf_ac group by fin
    ) a on f.id = a.fin;
    
     
  5. anakreon

    anakreon Elder - Старейшина

    Joined:
    19 Mar 2006
    Messages:
    30
    Likes Received:
    3
    Reputations:
    0
    Выдает:
    not a GROUP BY expression in
     
  6. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    А внутренний подзапрос выполняется?
    Code:
    select max(i_time) as mmaaxx, fin, l_price, best_buy, deal_max, deal_min from inf_ac group by fin
    
     
  7. anakreon

    anakreon Elder - Старейшина

    Joined:
    19 Mar 2006
    Messages:
    30
    Likes Received:
    3
    Reputations:
    0
    нет. та же ошибка.
    выполняется только так:
    Code:
    select max(i_time) as mmaaxx, fin, l_price, best_buy, deal_max, deal_min from inf_ac group by fin, l_price, best_buy, deal_max, deal_min
    выводит так:
    Code:
    2-DEC-06	 101	 120	  0	  125	    110	
    12-DEC-06	101	125	 0	 125	   125	
    14-DEC-06	103	1000	0      1000	1000	
    12-DEC-06	103	1100	0      1100	1100	
    23-NOV-07	105	   0	   0	      0	         0	
    22-FEB-07	 105	   301	 299	310	293.01	
     
    #2527 anakreon, 1 Apr 2008
    Last edited: 1 Apr 2008
  8. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    А если так?
    Code:
    select * from inf_ac 
    where fin in (
      select fin from inf_ac group by fin
    ) and i_time in (
      select max(i_time) from inf_ac group by fin
    );
    
    Если да, то от него надо тогда плясать и джойнить его
     
  9. anakreon

    anakreon Elder - Старейшина

    Joined:
    19 Mar 2006
    Messages:
    30
    Likes Received:
    3
    Reputations:
    0
    Да. так выводит. спасибо. а как его тогда лучше сджойнить?
     
  10. mr.The

    mr.The Elder - Старейшина

    Joined:
    30 Apr 2007
    Messages:
    1,080
    Likes Received:
    456
    Reputations:
    38
    а собственно брут чего?
     
  11. mr.The

    mr.The Elder - Старейшина

    Joined:
    30 Apr 2007
    Messages:
    1,080
    Likes Received:
    456
    Reputations:
    38
    примерно вот так.
     
    2 people like this.
  12. lsass.exe

    lsass.exe Elder - Старейшина

    Joined:
    5 Aug 2007
    Messages:
    156
    Likes Received:
    161
    Reputations:
    24
    тогда уж лучше так
    PHP:
    <br/>Введите пароль<br/>
    <form action='' method=post>
    <input name="pass" value="Введите пароль"/><br/>
    <input type="submit" name="submit" value="Начать брут"/>
    </form>
    <?php
    if(isset($_POST['submit']))
    {
    $pass_for_brute $_POST['pass']; // тут хранится пароль из поля
    // сам код брута
    }
    ?>
     
    2 people like this.
  13. Piflit

    Piflit Banned

    Joined:
    11 Aug 2006
    Messages:
    1,249
    Likes Received:
    585
    Reputations:
    31
    Buffalon if(isset($_POST['submit']))
     
  14. Buffalon

    Buffalon Elder - Старейшина

    Joined:
    22 Mar 2008
    Messages:
    241
    Likes Received:
    34
    Reputations:
    8
    Cори... .Я думал вы химичите в своей фор(м)ке)
     
  15. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    anakreon, джойнить надо наподобие этого
    Code:
    select f.id, f.sname, a.* from fin f
    left join (
      select i_time, fin, l_price, best_buy, deal_max, deal_min from inf_ac 
      where fin in (
        select fin from inf_ac group by fin
      ) and i_time in (
        select max(i_time) from inf_ac group by fin
      )
    ) a on f.id = a.fin;
    
     
  16. Buffalon

    Buffalon Elder - Старейшина

    Joined:
    22 Mar 2008
    Messages:
    241
    Likes Received:
    34
    Reputations:
    8
    Посмотрите мой код в плане быстродействия
    PHP:
    <?php

     $site
    ="http://bank.gov.ua/Fin_ryn/OF_KURS/Currency/FindByDate.aspx";
      
    $open=fopen($site,"r");
       
    $date=date("d.m.y");
     while(
    $fp=fgets($open,300))
      {

       if(
    strpos($fp,">EUR</td><td align=") !==false)
        {
         
    preg_match('(\d+)',$fp,$p);
          echo 
    "$p[0]<br>";
           echo 
    "$fp";
            break;
        }
      }
    ?>
    Мы пробегаем по сайту в поисках нжной строчки,длинна этой строчки 189... .НО я выставил 300... .Когда мы находим её мы с ней работтаем... .Или fopen некатит?

    Да.. .И как найти число c float с помощью preg_match() ?
     
    #2536 Buffalon, 2 Apr 2008
    Last edited: 2 Apr 2008
  17. Piflit

    Piflit Banned

    Joined:
    11 Aug 2006
    Messages:
    1,249
    Likes Received:
    585
    Reputations:
    31
    мб file_get_contents+preg_match?
     
  18. XENOT

    XENOT New Member

    Joined:
    10 Jul 2007
    Messages:
    7
    Likes Received:
    4
    Reputations:
    0
    msg rem
    ps большое пасибо Piflit!
     
    #2538 XENOT, 2 Apr 2008
    Last edited: 2 Apr 2008
  19. Piflit

    Piflit Banned

    Joined:
    11 Aug 2006
    Messages:
    1,249
    Likes Received:
    585
    Reputations:
    31
    $out = "POST /messages.php?rand=$rand[0] HTTP/1.0\r\n";
    $out .= "Cookie: sid=$sid[0]\r\n\r\n";
     
    1 person likes this.
  20. Zircool

    Zircool Elder - Старейшина

    Joined:
    1 Mar 2006
    Messages:
    162
    Likes Received:
    37
    Reputations:
    5
    Вопросик.....вот созрел... пытаюсь написать регер для сервиса nextmai.... но вот незадача, гна втором шаге работы с сокетами выдает ошибку....
    PHP:
    <?php
     Error_Reporting
    (E_ALL & ~E_NOTICE);
     
    $img="";
     
    $res="";
     
    $sock=@fsockopen("www.nextmail.ru",80);
     if(!
    $sock) die("fsockopen() error.");
    fputs($sock,
    "GET /reg/obligatory.phtml HTTP/1.0\r\n".
                
    "Host: www.nextmail.ru\r\n".
                
    "Referer: http://nextmail.ru/reg/obligatory.phtml\r\n".
                
    "User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.0.2) Gecko/20060308 Firefox/1.5.0.2\r\n".
                
    "Cookie:PHPSESSID=9844298bce50526dcbb22c64084688d7\r\n\r\n");


     while(!
    feof($sock))
        {
            
    $img .= fgets($sock1024);
        }
    $pos strpos($img"/au/code.phtml?u=");
    $got=substr($img,$pos,30);
    $got="http://nextmail.ru".$got;
    fclose($sock);

    echo 
    "<form><img src='$got'>";
    print
    "</br>\r\n";
    print
    "<br>";
    print
    "<form method='get'>";
    print
    "Code";
    print 
    "<br/>";
    print
    "<br/>";
    print
    "<input type='text' name='image' value='' /><br/>";
    print
    "<br>";
    print
    "<input type='submit' name='sub' value='Go!' /><br/>
                             </form>"
    ;

    if(isset(
    $_GET['sub']))
    {
    $kode=$_GET['image'];
    $pass=12345;
    $name=ererww;
    $url="todo=obliginfo&name=".$name."&domain=xaker.ru&password=".$pass."&pwdconf=".$pass."&fullname=".$name."&sex=Male&bday=2008-04-02&regcode=".$kode."&skipoptional=yes";
    $con=@fsockopen("www.nextmail.ru",80);
    if(!
    $con) die("fsockopen() error.");
    fputs($con,
    "POST /reg/obligatory.phtml HTTP/1.0\r\n".
                
    "Host: www.nextmail.ru\r\n".
                
    "Referer: http://nextmail.ru/reg/obligatory.phtml\r\n".
                
    "User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.0.2) Gecko/20060308 Firefox/1.5.0.2\r\n".
                
    "Cookie:regcookie[password]=".$pass."; regcookie[fullname]=".$name."; regcookie[sex]=Male; regcookie[bday]=2008-04-01; PHPSESSID=9844298bce50526dcbb22c64084688d7\r\n".
                
    "Content-Type:application/x-www-form-urlencoded\r\n".
                
    "Content-Length:".strlen($url)."\r\n\r\n".$url);
                while(!
    feof($con))
        {
            
    $res .= fgets($con1024);
        }
        
    fclose($con);

     echo 
    $res;

    }


    ?>
     
    #2540 Zircool, 3 Apr 2008
    Last edited: 3 Apr 2008
Thread Status:
Not open for further replies.