İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

Veritabanından veriyi çekerek array() içine almak

Tutaste

0
İyinet Üyesi
Katılım
7 Kasım 2012
Mesajlar
160
Reaction score
0
Veritabanında bir sütündeki verileri array() içine alamıyorum hata veriyor bu işin doğrusu nedir?

PHP:
      <?php

      $dovizcinsi = mysql_query("SELECT * FROM paracinsi WHERE para_cinsi <> 'TL'");

      $veritabani = mysql_fetch_array($dovizcinsi);
//      $veritabani = array('USD','EUR');
      $sonradan_eklenen = array('1_EUR->USD');
      $yeni_dizi = array_merge($veritabani,$sonradan_eklenen);
      $secili = $oku['doviz_cinsi'];
      echo "<select size=\"1\" name=\"dovizcinsi_duzelt\">\n";
      for($i= 0; $i<count($yeni_dizi); $i++)
      {
      $id = $yeni_dizi[$i];
      $selected = $id == $secili ? ' selected="selected"' : '';
      echo "<option value=\"$id\"$selected>$id</option>\n";
      }
      echo "</select>\n";  
      ?>

Sütünde TL,USD,EUR var sql sorguda TL hariç tutuyorum diğerleri USD ve EUR almam gerekiyor
$veritabani = array('USD','EUR'); bu şekilde çalışıyor ama bunu vertabanından alarak yapamıyorum sorun nedir? yada bu işin doğrusu nedir?
 

BordoMavi

0
İyinet Üyesi
Katılım
31 Ekim 2007
Mesajlar
176
Reaction score
0
Konum
Hirçın Sulardan
Farz Edelim Databasedeki verilerin:
Id | alan
----------
1 | USD
2 | EUR
PHP:
      $dovizcinsi = mysql_query("SELECT * FROM paracinsi WHERE para_cinsi <> 'TL'"); 
      while($veritabani = mysql_fetch_array($dovizcinsi)){
        print_r($veritabani);
      }
Bu şekilde sorgu yaptığında sana dönecek olan array yapısı şu şekilde:

Array ( [0] => 1 [id] => 1 [1] => USD [alan] => USD )
Array ( [0] => 2 [id] => 2 [1] => EUR [alan] => EUR )

Şeklinde bir veri elde ediyorsun.
Yaptığın hata şu sen $id = $yeni_dizi[$i]; dedin anda veriyi almıyorsun arrayı seçiyorsun ama içerisinde sana lazım olan veri satırına ulaşmıyorsun buna ukalmaş için $id = $yeni_dizi[$i][id]; veya $id = $yeni_dizi[$i][1];
kullanırsan veriye ulaşabilirsin.
 

Tutaste

0
İyinet Üyesi
Katılım
7 Kasım 2012
Mesajlar
160
Reaction score
0
Dediğinizi yaptım ama yine olmadı sadece 1 geliyor

PHP:
      <?php

      $dovizcinsi = mysql_query("SELECT * FROM paracinsi WHERE para_cinsi <> 'TL'");

      $veritabani = mysql_fetch_array($dovizcinsi);
//      $veritabani = array('USD','EUR');
      $sonradan_eklenen = array('1_EUR->USD');
      $yeni_dizi = array_merge($veritabani,$sonradan_eklenen);
      $secili = $oku['doviz_cinsi'];
      echo "<select size=\"1\" name=\"dovizcinsi_duzelt\">\n";
      for($i= 0; $i<count($yeni_dizi); $i++)
      {
      $id = $yeni_dizi[$i];
      $selected = $id == $secili ? ' selected="selected"' : '';
      echo "<option value=\"$id\"$selected>$id</option>\n";
      }
      echo "</select>\n";  
      ?>
Yukarıdaki kod sadece burayı $id = $yeni_dizi[$i][id]; ve $id = $yeni_dizi[$i][1]; ve $id = $yeni_dizi[$i][para_cinsi]; ve $id = $yeni_dizi[$i]['para_cinsi']; denedim olmadı

Tabloda bu başka birşey yok TL almadan USD ve EUR almam gerekiyor ama olmuyor tüm kodlarda yukarıda
PHP:
   id    para_cinsi
    1      USD
    2      EUR
    3       TL

Acaba yine ne eksik yapıyorum ben usta değilim acemiyim
 

metadige

0
İyinet Üyesi
Katılım
23 Aralık 2005
Mesajlar
354
Reaction score
4
Şu şekilde yapın.:

PHP:
$sorgula = mysql_query('SELECT id, para_cinsi FROM paracinsi WHERE para_cinsi <> "TL"');
while($sonuc = mysql_fetch_assoc($sorgula))    $veritabani[$sonuc['id']] = $sonuc['para_cinsi'];

$sonradan_eklenen = array('1_EUR'=> 'USD');
$yeni_dizi = array_merge($veritabani,$sonradan_eklenen); 
$secili = $oku['doviz_cinsi'];
echo '<select name="dovizcinsi_duzelt">'."\n";

foreach($yeni_dizi as $key => $val){
    $id = $key;//başka yerde kullanıyorsanız diye yoksa gerek yok
    $selected = ($id == $secili) ? ' selected="selected"' : '';
    echo '<option value="'.$key.'"'.$selected.'>'.$val.'</option>'."\n";
}
echo "</select>\n";

yalnız o sonradan eklenen dizinizde bir tuhaflık var gibi.
 

Tutaste

0
İyinet Üyesi
Katılım
7 Kasım 2012
Mesajlar
160
Reaction score
0
Tamam sayenizde hallettik çok teşekkür ederim Allah(cc) sizden razı olsun

Not: sonradan eklenen değer 1 euro karşılığı dolar yanı çapraz kur için belirlediğim isimdir

Sadece burayı değiştirdim sorun halloldu
PHP:
$sorgula = mysql_query('SELECT id, para_cinsi FROM paracinsi WHERE para_cinsi <> "TL"');
while($sonuc = mysql_fetch_assoc($sorgula))    $veritabani[$sonuc['id']] = $sonuc['para_cinsi'];

Tekrar teşekkür ederim
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Backlink ve Tanıtım Yazısı için iletişime geçmek için Skype Adresimiz: .cid.1580508955483fe5

Üst