• 15-12-2016, 17:26:54
    #1
    DB'de araba sütunum var
    arraydada araba[1] 2 3 vs arabalar var

    bir kod yazmak istiyorum array'ın içindeki veriler db'de yoksa onları ekrana yazdırsın daha sonra onlarıda seçerek db'ye ekleyeğim amacım o

    bu şekilde bir kontrolü nasıl yapabilirim ?
  • 15-12-2016, 18:20:10
    #2
    1. Veritabanındaki arabaları ilk başta çek bir diziye al.
    2. Araba dizisini foreach döngüsüne al
    3. Bu döngünün içinde koşul ekle bu koşulda http://php.net/manual/tr/function.in-array.php kullanarak kontrolünü sağla
    4. Sonuçları ekrana yazdır
  • 15-12-2016, 18:45:39
    #3
    Oda çok mantıklıymış çok teşekkür ederim

    //$yaz elimde daha önce tanımlanmış array
    $sorgu4 = mysql_query("select * from arabalar");
    while($sonuc4 = mysql_fetch_assoc($sorgu4)) 
    { 
    $dbveri = $sonuc4["araba"];
    
    foreach ($yaz as $deger) 
       { 
          if($dbveri==$deger)
          {
          }
          else
          {
             $dbdeolmayanlinkler[] = $deger;
          }
           
       } 
    
    }
    Bu şekilde çözdüm bu kodda bir sıkıntı var mı ?

    Edit: benim kod sadece db'deki ilk veriyi yazmadı gerisini yazdı

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 18:45:39 -->-> Daha önceki mesaj 18:35:34 --

    @Mikroscript çok teşekkür ederim dediğiniz gibi çözdüm

    //$yaz önceden tanımlanmış arabalar array'im
    $sorgu4 = mysql_query("select araba from arabalar");
    while($sonuc4 = mysql_fetch_assoc($sorgu4)) 
    {
    	$linkler[] = $sonuc4["araba"]; // dizi değişkene atadık.
    }
    
    foreach ($yaz as $deger) 
       { 
          if (!in_array($deger, $linkler)) {
    			echo $deger;
    			echo "<br>";
    		}
           
       }
    kodu işimi çözdü
  • 15-12-2016, 23:40:26
    #4
    Ben mantığı biraz daha geliştirip phpimizin build in fonksiyonu olan array_diff ile bunları almanı tavsiye ederim.

    // $yaz elinde daha önce tanımlanmış array
    // $linkler  veritabanından gelen array
    
    $olmayanlar = array_diff($yaz,$linkler);
    print_r($olmayanlar); // 2 dizinle olmayan değerleri karşılaştırır.
    http://php.net/manual/tr/function.array-diff.php


    Peki ya olanları birbiriyle eşleşenleri isteseydik ne olacaktı?

    $olanlar = array_intersect($yaz,$linkler);
    http://php.net/manual/tr/function.array-intersect.php

    Kolay gelsin.

    tahagg adlı üyeden alıntı: mesajı görüntüle
    Oda çok mantıklıymış çok teşekkür ederim

    //$yaz elimde daha önce tanımlanmış array
    $sorgu4 = mysql_query("select * from arabalar");
    while($sonuc4 = mysql_fetch_assoc($sorgu4)) 
    { 
    $dbveri = $sonuc4["araba"];
    
    foreach ($yaz as $deger) 
       { 
          if($dbveri==$deger)
          {
          }
          else
          {
             $dbdeolmayanlinkler[] = $deger;
          }
           
       } 
    
    }
    Bu şekilde çözdüm bu kodda bir sıkıntı var mı ?

    Edit: benim kod sadece db'deki ilk veriyi yazmadı gerisini yazdı

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 18:45:39 -->-> Daha önceki mesaj 18:35:34 --

    @Mikroscript çok teşekkür ederim dediğiniz gibi çözdüm

    //$yaz önceden tanımlanmış arabalar array'im
    $sorgu4 = mysql_query("select araba from arabalar");
    while($sonuc4 = mysql_fetch_assoc($sorgu4)) 
    {
    	$linkler[] = $sonuc4["araba"]; // dizi değişkene atadık.
    }
    
    foreach ($yaz as $deger) 
       { 
          if (!in_array($deger, $linkler)) {
    			echo $deger;
    			echo "<br>";
    		}
           
       }
    kodu işimi çözdü