Asp - Php - Cgi - Perl
Ayrı Ayrı Döngüler İçerisindeki Sql Sorgularını Birleştirmek (Php)
Ayrı Ayrı Döngüler İçerisindeki Sql Sorgularını Birleştirmek (Php)
-
Yardımcı olacakları sıkmamak ve kolay anlaşılmasını sağlamak için kısa bir özetini geçeyim.
imdb botu üzerinde çalışıyorum, foreach döngüsü ile sezon bilgilerini ayrı ayrı çekiyorum fakat veritabanına kayıt esnasında şöyle bir problem ile karşılaştım.
https://paste.ee/p/BcwQs -> Bu kod ile botu gönderip sezon içerisinde kaç tane bölüm varsa ismini çekiyorum.
Bölüm ismi ile ona ait olan bölüm fotoğrafını eşleştirip aynı satıra eklemek için diğer sorgularımda update kullandım.
(Sorguları birleştirmek istemimin sebebi bu. Insert sonrasında update kullanmak yerine tek bir insert ile bitirmek istemek.)
https://paste.ee/p/Ug353 -> Bölüm fotoğrafının eklenmesini sağlayan kod.
Sıkıntı burada doğuyor, sezon içerisinde 5 tane bölüm var diyelim, foreach döngüsü 5 kere gidip gelip bölüm ismini ekliyor.
Veritabanı Görünümü
Bölüm ismi 1
Bölüm ismi 2
Bölüm ismi 3
Bölüm ismi 4
Bölüm ismi 5
diye ekledi.
Sonra bölüm ismini ekleyen foreach döngüsünden çıkıp, dizinin bölüm fotoğraflarını ekleyen foreach döngüsünün içerisine giriyor ve doğal olarak ilk foreach döngüsünden en son cıkan $bolumismi değişkeninden dolayı, sadece dizinin en son bölümünün verilerini ekliyor.
Veritabanı Görünümü
Bölüm ismi 1 Boş
Bölüm ismi 2 Boş
Bölüm ismi 3 Boş
Bölüm ismi 4 Boş
Bölüm ismi 5 5. bölüm fotoğrafı
İlk foreach döngüsünden $bolumismi = "Bölüm ismi 5" olarak çıktığı için sadece "5. bölüm fotoğrafı" update sorgusu ile eklendi, diğer satırlar boş kaldı.
Veriler ayrı ayrı döngülerden toplandığı için tek bir insert sorgusu haline getiremedim.
GusFring tarafından 26/Şub/18 15:59 tarihinde düzenlenmiştir -
edit: counteri arttirmayi unutmusum onu da yaparsan calisir zannimca.
nurulmac11 tarafından 26/Şub/18 16:30 tarihinde düzenlenmiştir -
koduna bakamadım da şimdi
şu sitenin api si var, ve ücretsiz veriyo film listesini belki işine yarar uğraşmadan çekersin : https://www.themoviedb.org/
-
@nurulmac11, eve geçince kontrol edeceğim hocam.
@nevorapat, biraz eğitim amaçlı böyle tercih ettim, teşekkür ederim.
-
@nurulmac11 senin kodunla da yapamadım hocam.
Yapmak istediğim şey tekrar söyleyeyim,
foreach döngüsü içerisinde $x değişkeni 5 kez döndü, $x son aldığı değere kendini eşitleyerek döngü dışına çıktı. Bana $x değişkeninin aldığı tüm değerler lazım, bu $x değişkenini nasıl bir diziye atıyabilirim?
-
GusFring bunu yazdı
@nurulmac11 senin kodunla da yapamadım hocam.
Yapmak istediğim şey tekrar söyleyeyim,
foreach döngüsü içerisinde $x değişkeni 5 kez döndü, $x son aldığı değere kendini eşitleyerek döngü dışına çıktı. Bana $x değişkeninin aldığı tüm değerler lazım, bu $x değişkenini nasıl bir diziye atıyabilirim?
foreach ten once : $temp = array() diyerek bi array tanimla
sonra foreach icinde : $temp[] = x;
de, [] yeni elemanlar ekler arrayesonra kullanirsin. ama daha kolayi su: yapacagin isi bir fonksiyona yaz, foreach in icinde her dongude o fonksiyonu cagir. fonksiyon($x) diye