• 31-03-2015, 15:39:57
    #10
    Valla dun gece bakacaktım fırsat olmadı. Bugun bakmaya calısırım dostum.
  • 31-03-2015, 19:27:52
    #11
    ylv
    Üyeliği durduruldu
    ufukt51 adlı üyeden alıntı: mesajı görüntüle
    Merhaba arkadaşlar, kafamın biraz karıstıgı bir konuda sizden yardım istiyorum.
    $linkt = array();
    preg_match_all('~regex kuralim~is', $bir, $veriBir);
    
    foreach($veriBir[1] as $linki)
    {
    $linkt[]=$linki;
    }
    for($f = 0; $f < 2; $f++){
    $dizi_var=mysql_num_rows(mysql_query("SELECT video_id FROM videos WHERE sef_uri='".$linki[$f]."'"));
    if($dizi_var<=0){
    preg_match('~regex_kuralim~is',$link[$f],$cikti);
    $Isimleri[]=$cikti[1];
    for($im = 0; $im <count($Isimleri); $im++)
    {
    $Verisi = mysql_real_escape_string($Isimleri[$im]);
    var_dump($Verisi);
    }
    }
    }
    çıktısı:
    1. döngü çıktısı: abc ise
    2. döngü çıktısı ise abc ile def oluyor
    ama ikinci döngü çıktısı def olmasını istiyorum sadece.
    İnşallah derdimi anlatabilmişimdir. Teşekkür ederim şimdiden.
    ufukt51 adlı üyeden alıntı: mesajı görüntüle
    şöyle anlatayım,
    ben şimdi karşı siteden kategori bölümünden konu linklerini çekiyorum. şu şekilde preg_match_all ile tümünü alıyorum konu linklerinin ve sonra benim sitede var mı yok mu kontrolü yapıyorum, devam edelim...
    preg_match_all('~regex kuralim~is', $bir, $veriBir);
    burdan aldıgımı herbir $veribir[1] vs. degerini for döngüsüne sokuyorum
    for($f = 0; $f < 2; $f++){
    $dizi_var=mysql_num_rows(mysql_query("SELECT video_id FROM videos WHERE sef_uri='".$linki[$f]."'"));
    şimdilik sadece 2 ile sınırlandırdım döngüyü, veritabanında var mı yok mu kontrolü yapıyor elde ettigim her bir linki. Ondan sonra yoksa eger her bir linkin içine gir ve her partı bana al diyorum. Ama iş burda karışıyor. Herbir partı alırken 2. döngü de diyelim ki ilk döngüdeki part degerleriyle birlestirip alıyor
    İnşallah açıklayıcı olmuşumdur.

    döngü içersinde sıfırlama yapmamışsınız.

    $Isimleri[]=$cikti[1];

    yerine

    $Isimleri = array();
    $Isimleri[]=$cikti[1];

    yazdığın kodda performans açısından ciddi sorun var. foreach döngüsü içinde for döngüsü ve bu döngünün için bir mysql sorgusu. tavsiyem tek bir mysql sorgusu ile halledin.
  • 31-03-2015, 19:29:02
    #12
    $linkt = array();
    preg_match_all('~regex kuralim~is', $bir, $veriBir);
     
    foreach($veriBir[1] as $linki)
    {
    $linkt[]=$linki;
    }
    for($f = 0; $f < 2; $f++){
    $dizi_var=mysql_num_rows(mysql_query("SELECT video_id FROM videos WHERE sef_uri='".$linki[$f]."'"));
    if($dizi_var<=0){
    preg_match('~regex_kuralim~is',$link[$f],$cikti);
    $Isimleri[]=$cikti[1];
    for($im = 0; $im <count($Isimleri); $im++)
    {
    $Verisi = mysql_real_escape_string($Isimleri[$im]);
    var_dump($Verisi);
    }
    }
    }
    Yukarıda ki gibi dizilerle çalışırken işiniz bittiğinde diziyi unset etmeniz gerekir aksihalde söylediğiniz gibi tüm değerleri biriktirmiş olursunuz.

    for($im = 0; $im <count($Isimleri); $im++)
    {
    $Verisi = mysql_real_escape_string($Isimleri[$im]);
    var_dump($Verisi);
    
    unset($Isimleri); // döngüde işi biten diziyi silerseniz sorun kalmaz.
    }
  • 31-03-2015, 19:40:07
    #13
    ylv adlı üyeden alıntı: mesajı görüntüle
    döngü içersinde sıfırlama yapmamışsınız.

    $Isimleri[]=$cikti[1];

    yerine

    $Isimleri = array();
    $Isimleri[]=$cikti[1];

    yazdığın kodda performans açısından ciddi sorun var. foreach döngüsü içinde for döngüsü ve bu döngünün için bir mysql sorgusu. tavsiyem tek bir mysql sorgusu ile halledin.
    malesef bunu tek tek yaptırmam gerekiyor pm attım kendiniz de kontrol edebilirsiniz mantıgı bir link kategorisine gidiyor curl ile o kategorideki linkleri sıralıyor ve sıraladıklarından veritabanında olmayanları ekliyor. pm ile calısır halini gönderdim ama sorunlu calısan hali.
    Met adlı üyeden alıntı: mesajı görüntüle
    $linkt = array();
    preg_match_all('~regex kuralim~is', $bir, $veriBir);
     
    foreach($veriBir[1] as $linki)
    {
    $linkt[]=$linki;
    }
    for($f = 0; $f < 2; $f++){
    $dizi_var=mysql_num_rows(mysql_query("SELECT video_id FROM videos WHERE sef_uri='".$linki[$f]."'"));
    if($dizi_var<=0){
    preg_match('~regex_kuralim~is',$link[$f],$cikti);
    $Isimleri[]=$cikti[1];
    for($im = 0; $im <count($Isimleri); $im++)
    {
    $Verisi = mysql_real_escape_string($Isimleri[$im]);
    var_dump($Verisi);
    }
    }
    }
    Yukarıda ki gibi dizilerle çalışırken işiniz bittiğinde diziyi unset etmeniz gerekir aksihalde söylediğiniz gibi tüm değerleri biriktirmiş olursunuz.

    for($im = 0; $im <count($Isimleri); $im++)
    {
    $Verisi = mysql_real_escape_string($Isimleri[$im]);
    var_dump($Verisi);
    
    unset($Isimleri); // döngüde işi biten diziyi silerseniz sorun kalmaz.
    }
    bu sekilde sıfırlama yaptıgımda video partlarının sadece ilklerini alıp veriyor pm attım kontrol edebilir misiniz?
  • 03-04-2015, 04:55:56
    #14
    for($im = 0; $im <count($partLinkleri); $im++)
    {
    $partVerisi = mysql_real_escape_string($partLinkleri[$im]);
    $partIsim = $partIsimleri[$im];
    $array[$linkim][$partIsim][]=$partVerisi;
    }
    var_dump($array);
    $array['12-monkeys-1-sezon-1-bolum']['tr'][] = kaynak1;
    $array['12-monkeys-1-sezon-1-bolum']['tr'][] = kaynak2;
    $array['12-monkeys-1-sezon-1-bolum']['tr'][] = kaynak3;
    şeklinde oldu ancak cıktısı http://paste2.org/d76fbb87 şeklinde oluyor. ilk döngüdekini her döngüye ekliyor ve devam ediyor.