• 25-06-2008, 16:47:00
    #1
    phpde yeniyim.

    aşağıdaki for döngüsündeki $i değişkeni artmıyor. veritabanına hep 210. değeri basıyor.
    for($i=0 ; $i<=210 ; $i++)
      {
    
        $adres="http://www.*****.com/"; 
        $cikti[0]="file.php?id=$i"; 
     }
    yukarıdaki koda göre 0. değerden, 210. değere kadar veritabanına basması gerekmez mi?

    saatlerdir hatayı bulamadım. yardım.
  • 25-06-2008, 17:00:27
    #2
    Veritabanıyla ilgili bir satır dahi yok ama öyle olduğunu varsayımlayalarak hatanın;

    $cikti[0]="file.php?id=$i"; satırında olduğunu söyleyebilirim.

    Doğrusu;

    $cikti[0]="file.php?id=".$i;

    olmalıydı
  • 25-06-2008, 17:02:36
    #3
    burda veritabanı satırı yok
    array [0] ı hep birşeylere eşitliyorsun ayrıca biriktirme yapmıyorsun
  • 25-06-2008, 17:13:08
    #4
    ghost boy dediğin değişikliği yaptım. yine aynı şey devam ediyor.

    En iyisi kodun tamamını vermek;

       <? 
    include("database.php"); 
    
    // url //
    
    for($i=0 ; $i<=210 ; $i++)
        {
        $adres="http://www.******.com/"; 
        $cikti[0]="file.php?id=".$i; 
        }
    
    do { 
    
    // title //
    $cikti2=@file_get_contents($adres.($cikti[0]));  
    $cikti2=explode ('<div class=title>', $cikti2);   
    $cikti2=explode ('</div>', $cikti2[1]); 
    
    // database // 
    mysql_query("Insert Into articles (title) values ('$cikti2[0]')"); 
    } 
    
    // while // 
    while($cikti[0]==""); 
    ?>
    sorunu tekrar hatırlatayım, 0. id'den 210. id'e kadar olanı değil, sadece 210. id'deki veriyi veritabanına yazıyor.
  • 25-06-2008, 17:17:24
    #5
    Üyeliği durduruldu
       <? 
    include("database.php"); 
    // url //
    for($i=0 ; $i<=210 ; $i++)
        {
        $adres="http://www.******.com/"; 
        $cikti[0]="file.php?id=".$i; 
    do { 
    // title //
    $cikti2=@file_get_contents($adres.($cikti[0]));  
    $cikti2=explode ('<div class=title>', $cikti2);   
    $cikti2=explode ('</div>', $cikti2[1]); 
    // database // 
    mysql_query("Insert Into articles (title) values ('$cikti2[0]')"); 
    } 
    // while // 
    while($cikti[0]==""); 
    }
    ?>
    bide böyle dene
  • 25-06-2008, 17:42:15
    #6
    bu çalıştı yalnız 0'dan 210'a kadar gitmedi. sadece 24'e kadar gitti. daha sonra 200'den 210'a kadar al dedim. 10 tane değil 6 tane aldı.

    işlemi bitirdikten sonra şöyle bir hata veriyor ayrıca;
    Notice: Undefined offset: 1 in c:\program files\easyphp1-8\www\my-i\dene.php on line 12

    12. satır;
    $cikti2=explode ('</div>', $cikti2[1]);
  • 25-06-2008, 17:49:03
    #7
    Üyeliği durduruldu
    kodlarda bir sorun gözükmüyor. belki bilgileri çektiğin sitede bir sorun vardır.
  • 26-06-2008, 01:10:21
    #8
    Üyeliği durduruldu
    şöle bişey yazdım bunu düzenleyip kullanabilirsin.
    başka siteden veri çekmeye karşıda olsam kolaylık sağlıyo
     <?
    include("database.php");
    ob_start(); set_time_limit(0);
    mysql_query("SET NAMES 'latin5'");
    header("Content-Type: text/html; charset='iso-8859-9'",true);
    
    $baslangic=$_GET['baslangic'];
    if(!isset($baslangic)){exit();}
    $yonlen=$baslangic+51;
    
    do{ $baslangic++;
    $url='http://www.******.com/file.php?id='.$baslangic;
    $kaynak=file_get_contents($url);
    preg_match_all("'<div class=title>(.*?)</div>'si",$kaynak,$title);
    $titlex=@mysql_real_escape_string(trim(strip_tags($title[1][0])));
    if($titlex!=NULL){mysql_query("Insert Into articles (title) values ('$titlex')"); }
    
    }while($baslangic<=$baslangic+50);
    
    unset($kaynak);
    
    header("Refresh 10; url=http://siten.com/cek.php?baslangic=$yonlen"); exit();
    
    ob_end_flush(); ob_end_clean();
    ?>
    opera tarayıcı açıp (kitlenmesin)

    http://siten.com/cek.php?baslangic=0

    kodları kontrol et yinede, denemedim.

    çekeceğin site yavaşsa 50'yi 20lere düşür
  • 26-06-2008, 01:15:50
    #9
    for($i=0 ; $i<=210 ; $i++){
    	$adres = "http://www.******.com/";
    	$cikti = $adres."file.php?id=".$i;
    	mysql_query("Insert Into articles (title) values ('$cikti')"); 
    }
    Bunu denermisin.