[]

Php ile for döngüsü

Bir excel dosyasında binlerce satır var, her iki satır bir kişiye ait.

ben excel dosyalarını xml formatına çeviriyorum.

Karşıma bu görüntü çıkıyor.

<Record>
<Row
A="1"
B="KÖY"
C="5"
E="İsim"
F="E"
G="ALI"
H="01/07/1935"
I="İstanbul"
/>
</Record>

<Record>
<Row
A="837465837465"
E="ad"
G="Nick"
H="Istanbul"
I="Bağcılar"
/>
</Record>

Php for döngüsünü bullanarak her iki satırı birleştirip 1 tane üye elde edeceğim. Bunu veritabanına işleyeceğim.

Fakat For döngüsü her record attr için dönüyor. Bu yüzden her defasında döndüğünde bana çıkarmış olduğu sayı ad ve soyadların toplamı oluyor. Yani 20 kişi varsa ben count dediğim zaman karşıma, 40 tane satır var diyor.

Ben de bunun için böyle bir döngüye girmek istiyorum. Kod örneği;

for ($i = 0; $i <= count($xml->Record); $i++ )
{
echo $xml->Record[$i]->Row->attributes()["E"]. " "; //
echo $xml->Record[$i + 1]->Row->attributes()["E"]; //
}

Fakat konudan anlayan arkadaşlar bu kullandığım kodun ne kadar yanlış olduğunu görecektir.
Soyadlara ulaşmak için ikinci satıra ulaşarak soyadını okuyor ve veritabanına işliyorum.
Ama döngüm tamamlandığı zaman, 2. döngü başladığında problem oluşuyor. Ben + 1 diyerek ulaştığım, döngüye doğru yol almaya başlıyor. Ve 2. satırın bilgileri benim soyadı diye okuttuğum döngüye ekleniyor. İstediğim şey patlıyor.

Yapmak istediğim şu; döngüm $i++ değil de $i + 1 olsun. Bu şekilde 0, 2, 4, şeklinde satırları okumaya başlasın, fakat bunu yaparken aynı zamanda da 1, 3, 5, numaralı satırlara ulaşmam gerekiyor.

for döngüsüne $i += 2 yaparak 0, 2, 4, 6 şeklinde döngüyü çevirebilirim sanırım.

echo $xml->Record[$i - 1]->Row->attributes()["E"]; //
şeklinde 1, 3, 5 de yapabiliyorum fakat ilk döngüde 0 - 1 olacağı için hata vermeye başlayacağını tahmin ediyorum. if ile ilk döngüyü devre dışı bıraksam mantıklı olur mu yoksa bunun daha güzel bir şekli olabilir mi ?

teşekkürler...

 
"$i += 2" sorunu çözer gibi. çoktan denemişsindir gerçi, oldu mu bari?


  • edy  (02.06.15 00:43:33) 
1
buraya yazılanların hakları Sir Anthony Hopkins'e aittir.
yazan eden compumaster, ilgilenen eden fader
modere edenler angelus, Artibir, aychovsky, baba jo, basond, compumaster, deckard, duyulmasi gerektigi kadar, fader, fraise, groove salad, kahvegibi, kaymaktutmayansicaksut, kibritsuyu, monstro, pandispanya, robin, ron dennis
bu sitede yazılanların hiçbiri doğru değildir. site içeriği küçükler için sakıncalı olabilir. yazılardan yazarları sorumludur. kaynak göstermeden alıntılanamaz. devlet tarafından atanmış bir kurumun internet üzerinde kimin hangi bilgiye ulaşıp ulaşamayacağına karar vermesi insan haklarına aykırıdır. web siteleri kullanıcıların istekleri doğrultusunda bağlandıkları yerlerdir. kullanıcılar isterlerse bir web sitesine bağlanmayabilirler. bu güçleri ve imkanları mevcuttur. bir kullanıcı bir siteye bağlanmak istiyorsa bu onun tercihi ve hakkıdır. bağlanmak istemiyorsa bu yine onun tercihi ve hakkıdır. halkın kendisine hizmet etmesi için görevlendirdiği kurumlar hadlerini aşıp halka neye ulaşıp ulaşmayacağını bilmeyen cahil cühela muamelesi edemezler. ebeveynlerin çocuklarını sakıncalı içeriklerden koruması için çok sayıda bedava ve ücretli yazılım mevcuttur. bu yazılımlar bir web tarayıcısını kullanmaktan daha karmaşık teknik bilgi gerektirmemektedir. devletin milletini küçük düşürmesi ve ebleh yerine koyması yasaktır. Skimlinks ile linkler üzerinden yönlendirme payı alınmaktadır.