lostyazilim
tr.link

Php foreach içindekileri dışarıda kullanma

14 Mesajlar 3.639 Okunma
acebozum
tr.link

0ebedi 0ebedi Kimlik Onayı Bekliyor Banlı Kullanıcı
  • Üyelik 17.08.2018
  • Yaş/Cinsiyet 27 / E
  • Meslek Öğrenci
  • Konum İstanbul Anadolu
  • Ad Soyad E** E**
  • Mesajlar 188
  • Beğeniler 49 / 44
  • Ticaret 0, (%0)
Ana Sayfada mücadeleleri sıralıyorum

Kullanıcılar mücadeleleri oylayabiliyorlar

Ben Ana Sayfada kullanıcının oyunu kullandığı mücadelenin görünmesini istemiyorum

bunun için şunu yaptım kullanıcının oyunu kullandığı mücadeleleri foreach ile listeledim

daha sonra mücadeleleri listelediğim kısma mücadele idsi oy kullanılan mücadeleye eşit değilse gözüksün diye bir koşul ekledim

fakat foreach içindekileri diğer bir foreach içinde kullanamadım bunu yapmanın bir yolu var mı

veya genel olarak başka bir yol var mı

kulalnılan oyları da mücadeleleri de foreach ile listeliyorum

Umarım anlatabilmişimdir biraz karışık oldu ama :D
 

 

wmaraci
reklam

AhmetKarabulut AhmetKarabulut WM Aracı Kullanıcı
  • Üyelik 11.09.2013
  • Yaş/Cinsiyet 30 / E
  • Meslek Bilgisayar Mühendisi
  • Konum İzmir
  • Ad Soyad A** K**
  • Mesajlar 1077
  • Beğeniler 361 / 361
  • Ticaret 33, (%100)
Hocam kulağınızı tersten tutmak yerine foreach ile direkt olarak kullanıcının oy kullanmadığı mücadeleleri listeletseniz bir SQL sorgusuyla çekip ?
 

 

0ktay 0ktay strdex Kullanıcı
  • Üyelik 01.02.2018
  • Yaş/Cinsiyet 26 / E
  • Meslek Yazılım öğrencisi
  • Konum Antalya
  • Ad Soyad O** Ş**
  • Mesajlar 603
  • Beğeniler 25 / 155
  • Ticaret 2, (%100)
Mücadele değilde başka bir matematik problemi üzerinen referans alarak anlatsan daha basit olur :) kafamda tek dönen şey mücadele kimler arasında :D
0ebedi

kişi bu mesajı beğendi.

Eğitimin pahalı olduğunu düşünüyorsanız, cehaletin bedelini hesaplayın.

FOMOCO FOMOCO WM Aracı Kullanıcı
  • Üyelik 10.11.2011
  • Yaş/Cinsiyet 41 / E
  • Meslek Nakliyat
  • Konum
  • Ad Soyad C** A**
  • Mesajlar 417
  • Beğeniler 184 / 76
  • Ticaret 1, (%100)
soruyu anlayabilmek için bir hayli mücadele ettim :)

döngü içindeki sonuçları dışarda kullanmak için aşağıda ki şekilde alabilirsiniz



$dizi = array('ahmet', 'mehmet', 'nerde', 'ayşe', 'nerde', 'mehmet', 'nerde');
$sss=array();
foreach($dizi as $sss){
$user_id_worker[]= array($sss);

}

print_R($user_id_worker);
?>
0ebedi

kişi bu mesajı beğendi.

wmaraci
wmaraci

0ebedi 0ebedi Kimlik Onayı Bekliyor Banlı Kullanıcı
  • Üyelik 17.08.2018
  • Yaş/Cinsiyet 27 / E
  • Meslek Öğrenci
  • Konum İstanbul Anadolu
  • Ad Soyad E** E**
  • Mesajlar 188
  • Beğeniler 49 / 44
  • Ticaret 0, (%0)

AhmetKarabulut adlı üyeden alıntı

Hocam kulağınızı tersten tutmak yerine foreach ile direkt olarak kullanıcının oy kullanmadığı mücadeleleri listeletseniz bir SQL sorgusuyla çekip ?


Mantıklı :D Deniyeceğim...
 

 

0ebedi 0ebedi Kimlik Onayı Bekliyor Banlı Kullanıcı
  • Üyelik 17.08.2018
  • Yaş/Cinsiyet 27 / E
  • Meslek Öğrenci
  • Konum İstanbul Anadolu
  • Ad Soyad E** E**
  • Mesajlar 188
  • Beğeniler 49 / 44
  • Ticaret 0, (%0)

FOMOCO adlı üyeden alıntı

soruyu anlayabilmek için bir hayli mücadele ettim :)

döngü içindeki sonuçları dışarda kullanmak için aşağıda ki şekilde alabilirsiniz


bu print_r(...) ' yi veritabanından veri çekerken nasıl kullanabilirim ?

yani

....... where id != 'print_r(...)' ..........

şeklinde kullandım fakat doğru sonuç vermedi
 

 

3579 3579 WM Aracı Anonim Üyelik
  • Üyelik 30.01.2012
  • Yaş/Cinsiyet - /
  • Meslek
  • Konum
  • Ad Soyad ** **
  • Mesajlar 2434
  • Beğeniler 686 / 1151
  • Ticaret 1, (%100)

0ebedi adlı üyeden alıntı

bu print_r(...) ' yi veritabanından veri çekerken nasıl kullanabilirim ?

yani

....... where id != 'print_r(...)' ..........

şeklinde kullandım fakat doğru sonuç vermedi


Print, echo, print_r gibi fonksiyonlar çıktı verir. O şekilde kullanamazsınız.
Amacınız bir dizi içindeki değerlerle eşleşmeyen veya eşleşen değerleri çekecekseniz, SQL "IN" veya "NOT IN" sorgusunu kullanabilirsiniz.

.... where id IN (1,2,3,4,5,6,8) ..... => 1,2,3,4,5,6,8 id'ye sahip olanları çeker.


... where id NOT IN (1,2,3,4,5,6,8) .... => o verileri çekmez..

Tabi dediğinizi tam anlamadığımdan düzgün bir cevap veremiyorum. Ne yapmak istediğinizi daha basit bir dille anlatırsanız ona göre cevap verebiliriz.
 

 

TurkeyDesign TurkeyDesign WM Aracı Kullanıcı
  • Üyelik 21.12.2018
  • Yaş/Cinsiyet 35 / E
  • Meslek Mobil Uygulama ve Web Tasarım
  • Konum Adana
  • Ad Soyad O** Ö**
  • Mesajlar 151
  • Beğeniler 68 / 58
  • Ticaret 1, (%100)
İki foreach birleştirilir. Örneğin ilk foreach id'si $id1 olsun. 2. foreach id'si $id2 olsun. İlk foreach mutlaka oylanan bilgisi çeksin diğeri de içerik olsun.


foreach ($oylayanlar as $oylayan_data){
$oylayan_id = $oylayan_data["id"];

foreach ($icerikler as $icerik_data){
$icerik_id = $icerik_data["id"];
$icerik_baslik = $icerik_data["baslik"];

if($oylayan_id == $icerik_id) {} else {
?>
//içerikleri burada yayımlayın.



yukarıdaki kodun manası şudur. Oylayanların id'si ile içerikteki id'leri birleştirdik. Eğer oylananların id'si içerik iid'si ile eşit ise içeriği gösterme değilse göster demiş olduk.

Bunu uygula kendine göre dediğin olur.
TeknoCoder

kişi bu mesajı beğendi.

0ebedi 0ebedi Kimlik Onayı Bekliyor Banlı Kullanıcı
  • Üyelik 17.08.2018
  • Yaş/Cinsiyet 27 / E
  • Meslek Öğrenci
  • Konum İstanbul Anadolu
  • Ad Soyad E** E**
  • Mesajlar 188
  • Beğeniler 49 / 44
  • Ticaret 0, (%0)

Kakarotto adlı üyeden alıntı

Print, echo, print_r gibi fonksiyonlar çıktı verir. O şekilde kullanamazsınız.
Amacınız bir dizi içindeki değerlerle eşleşmeyen veya eşleşen değerleri çekecekseniz, SQL "IN" veya "NOT IN" sorgusunu kullanabilirsiniz.

.... where id IN (1,2,3,4,5,6,8) ..... => 1,2,3,4,5,6,8 id'ye sahip olanları çeker.


... where id NOT IN (1,2,3,4,5,6,8) .... => o verileri çekmez..

Tabi dediğinizi tam anlamadığımdan düzgün bir cevap veremiyorum. Ne yapmak istediğinizi daha basit bir dille anlatırsanız ona göre cevap verebiliriz.


Sanırım benim NOT IN kullanmam gerek ama işte oraya da foreachden gelen verilerin hepsini yazdırmam gerekiyor yani print_r() içindekilerin hepsini teker teker
 

 

0ebedi 0ebedi Kimlik Onayı Bekliyor Banlı Kullanıcı
  • Üyelik 17.08.2018
  • Yaş/Cinsiyet 27 / E
  • Meslek Öğrenci
  • Konum İstanbul Anadolu
  • Ad Soyad E** E**
  • Mesajlar 188
  • Beğeniler 49 / 44
  • Ticaret 0, (%0)

TurkeyDesign adlı üyeden alıntı

İki foreach birleştirilir. Örneğin ilk foreach id'si $id1 olsun. 2. foreach id'si $id2 olsun. İlk foreach mutlaka oylanan bilgisi çeksin diğeri de içerik olsun.


foreach ($oylayanlar as $oylayan_data){
$oylayan_id = $oylayan_data["id"];

foreach ($icerikler as $icerik_data){
$icerik_id = $icerik_data["id"];
$icerik_baslik = $icerik_data["baslik"];

if($oylayan_id == $icerik_id) {} else {
?>
//içerikleri burada yayımlayın.



yukarıdaki kodun manası şudur. Oylayanların id'si ile içerikteki id'leri birleştirdik. Eğer oylananların id'si içerik iid'si ile eşit ise içeriği gösterme değilse göster demiş olduk.

Bunu uygula kendine göre dediğin olur.


Teşekkürler

Ama foreach lerin içerisnde sadece bunlar olsa bunu yapıcaktım zaten fakat bir sürü değişken var ve kodlar çok uzun ve karışık oluyor başka kısa bir çaresi yoksa bunu yapıcam

bilmiyorum belkide aynı uzunlukta olur yapmak istediğim şey, ben biraz daha araştırayım :D
 

 

wmaraci
wmaraci
Konuyu toplam 4 kişi okuyor. (0 kullanıcı ve 4 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al