• 28-06-2010, 18:10:21
    #1
    $source = "abcd.xml";
     
            $data=file_get_contents($source);
     
             preg_match_all ('|<articles>(.*?)<\/articles>|si', $data, $articles);
            preg_match_all ('|<url>(.*?)<\/url>|si', $data, $url);
            preg_match_all ('|<name>(.*?)<\/name>|si', $data, $name);
            preg_match_all ('|<email>(.*?)<\/email>|si', $data, $email);
            preg_match_all ('|<ip_address>(.*?)<\/ip_address>|si', $data, $ip_address);
            preg_match_all ('|<message>(.*?)<\/message>|si', $data, $message);
            preg_match_all ('|<date>(.*?)<\/date>|si', $data, $date);
    şeklinde dosyadan verielri alıyorum.

    Fakat foreach ile tüm verileri aynı anda veritabanına giremiyorum.

    şunu denedim:
    foreach ($name[1] as $name2) {
       
      foreach ($email[1] as $email2) {
    
       mysql_query ("INSERT INTO tablo (id, parent, path, level, object_id, object_group, object_params, lang, userid, name, username, email, homepage, title, comment, ip, date, isgood, ispoor, published, subscribe, source, source_id, checked_out, checked_out_time, editor) VALUES ('', '', '', '', '$url2', 'com_content', '', '', '', '$name2', '$name2', '$email2', '', '', '$message2', '$ip_address2', '$date2', '', '', '1', '', '', '', '', '', '' )");
    
      }
    }
    Bunun gibi bişeyler denedim ama olmadı. Nasıl olacak?
  • 28-06-2010, 18:38:43
    #2
    Üyeliği durduruldu
    http://php.net/manual/en/function.array-push.php

    <?php
    $stack = array("orange", "banana");
    array_push($stack, "apple", "raspberry");
    print_r($stack);
    ?>
    
    
    Array
    (
        [0] => orange
        [1] => banana
        [2] => apple
        [3] => raspberry
    )
  • 28-06-2010, 20:02:21
    #3
    gelen degerlerini tam bilmediğim için net birsey yazamadım benim mantıgım bu



    <?
    for ($i = 0; $i < 10; $i++){
       mysql_query ("INSERT INTO tablo (id, parent, path, level, object_id, object_group, object_params, lang, userid, name, username, email, homepage, title, comment, ip, date, isgood, ispoor, published, subscribe, source, source_id, checked_out, checked_out_time, editor) VALUES ('', '', '', '', '$url2', 'com_content', '', '', '', '". $name[$i] ."', '$name2', '$email2', '', '', '$message2', '$ip_address2', '$date2', '', '', '1', '', '', '', '', '', '' )");
    }
    ?>
    dizi değişken içeriğini saydır (count() ; ) ona görede koşul sağla ben örnek 10 yazdım
  • 28-06-2010, 20:17:51
    #4
    gelen her değişken bir dizi. örneğin $name[1] çıktısının 1 den fazla farklı sonucu var. Hala yapamadım
  • 28-06-2010, 20:46:03
    #5
    $source = "abcd.xml";
     
            $data=file_get_contents($source);
     
             preg_match_all ('|<articles>(.*?)<\/articles>|si', $data, $bilgi['articles']);
            preg_match_all ('|<url>(.*?)<\/url>|si', $data, $bilgi['url']);
            preg_match_all ('|<name>(.*?)<\/name>|si', $data, $name);
            preg_match_all ('|<email>(.*?)<\/email>|si', $data, $email);
            preg_match_all ('|<ip_address>(.*?)<\/ip_address>|si', $data, $ip_address);
            preg_match_all ('|<message>(.*?)<\/message>|si', $data, $message);
            preg_match_all ('|<date>(.*?)<\/date>|si', $data, $date);
    şeklinde dosyadan verielri alıyorum.
    
    Fakat foreach ile tüm verileri aynı anda veritabanına giremiyorum.
    
    şunu denedim:
    yukarıda alınan bilgileri 1 dizi içinde kaydetmen ve sonra diziyi girmen çok daha rahat olur
    $bilgi['articles'] gibi degistirdim ilk 2 sini sonra

    foreach ($bilgi as $veri) {
    
    mysql_query (" INSERT INTO tablo (a,b,c) values ($veri[articles],$veri[url]) ");
    }
    tarzinda yapabilirsin kodlamada syntax hatasi olabilir hizli yazdim ama bu mantigin isini gorecegini biliyorum.
  • 29-06-2010, 17:47:44
    #6
    bomba..! teşekkürler.