lostyazilim
tr.link

Array bilgi alma

4 Mesajlar 690 Okunma
acebozum
tr.link

kaan88 kaan88 WM Aracı Kullanıcı
  • Üyelik 03.04.2015
  • Yaş/Cinsiyet 34 / E
  • Meslek Öğrenci
  • Konum İstanbul Anadolu
  • Ad Soyad K** H**
  • Mesajlar 217
  • Beğeniler 93 / 24
  • Ticaret 0, (%0)
Merhaba arkadaşlar,
Elimde bir array kodu var print_r($yaz) şeklinde kullandığım zaman sayfada çıktısı şu oluyor Array (
[0] => Array
(
[isim] => aa
[id] => 1
)
[1] => Array
(
[isim] => bb
[id] => 6
)
[2] => Array
(
[isim] => cc
[id] => 77
)
.
.
.
.
[50] => Array
(
[isim] => dd
[id] => 91
)
)


Ben bu array içerisinden sadece id leri veritabanında kullanıcı tablosunda id sutununda aratıp eşleşme var ise yine aynı tabloda ki eşleşen kullanıcı adını yazdırmak istiyorum. Bunu nasıl yapabilirim?

Şöyle bir işlemle sadece 0 olan arrayı bulabiliyorum fakat diğerlerini gösteremiyorum

$sql = "select * from user where id like '" . $yaz[0]["id"] . "'";
$result = mysql_query($sql);
if ( mysql_num_rows($result) > 0 ) {
while ($row = mysql_fetch_assoc( $result ) ) {
//print_r( $row);
echo $row["isim"];
echo "
";
}
}


Teşekkür ederim.
 

 

elektronikssl
webimgo

SizofrenikDev SizofrenikDev WM Aracı Kullanıcı
  • Üyelik 05.10.2016
  • Yaş/Cinsiyet 38 / E
  • Meslek Yazılım Uzmanı
  • Konum İstanbul Avrupa
  • Ad Soyad H** B**
  • Mesajlar 187
  • Beğeniler 8 / 49
  • Ticaret 2, (%100)
Sorgunu like ile kullanman tabloda kayıt sayısı arttıkça problem çıkartabilir. mySQL çok fazla bilmem fakat, sorgunu oluştururken "where" kriterinden sonra "in" komutunu kullanarak birden fazla id değerini virgüller ile ayırarak set edebilirsin.

$sql = 'SELECT * FROM `table` WHERE `id` IN (' . implode(',', array_map('intval', $array)) .')';
kaan88 MeteOguzhan

kişi bu mesajı beğendi.

ismail03 ismail03 WM Aracı Kullanıcı
  • Üyelik 28.11.2013
  • Yaş/Cinsiyet 30 / E
  • Meslek Ameliyathane Hemşiresi
  • Konum Afyon
  • Ad Soyad I** Ç**
  • Mesajlar 2633
  • Beğeniler 344 / 487
  • Ticaret 12, (%100)

ŞizofrenikDev adlı üyeden alıntı

Sorgunu like ile kullanman tabloda kayıt sayısı arttıkça problem çıkartabilir. mySQL çok fazla bilmem fakat, sorgunu oluştururken "where" kriterinden sonra "in" komutunu kullanarak birden fazla id değerini virgüller ile ayırarak set edebilirsin.

$sql = 'SELECT * FROM `table` WHERE `id` IN (' . implode(',', array_map('intval', $array)) .')';


HOcam fonksiyonda bir yeri anlamadım
$sql='SELECT * FROM table where id in ('.implode(',',array_map('intval',$array).')';
implode ile diziyi parçalayıp her bir indis arasına virgül attık
array_map('intval',$array) olayını anlamadım burada array_map niçin kullandık?
kaan88

kişi bu mesajı beğendi.

SizofrenikDev SizofrenikDev WM Aracı Kullanıcı
  • Üyelik 05.10.2016
  • Yaş/Cinsiyet 38 / E
  • Meslek Yazılım Uzmanı
  • Konum İstanbul Avrupa
  • Ad Soyad H** B**
  • Mesajlar 187
  • Beğeniler 8 / 49
  • Ticaret 2, (%100)
array içerişindeki tüm elemanları int tipine çevirmek için array_map kullanıldı, intval yerine trim yazarsan her bir elemanın trim fonksiyonundan dönen değeri gelir. kısacası array içerisindeki her bir elemana bir işlem yaptırmak istersen array_map kullanabilirsin.
kaan88

kişi bu mesajı beğendi.

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