• 07-02-2018, 04:58:21
    #1
    Merhaba arkadaşlar bir konuda yardım edebilir misiniz ?

    <?php $ekyazar=mysql_query( "SELECT * FROM makaleyazar WHERE makale ='$makale->id' ORDER BY sira ASC ");
    while($ekyaz=mysql_fetch_object($ekyazar)){ ?>

    <?php echo $ekyaz->adi;?>,

    <?php } ?>


    şeklinde bir While döngüsü olsun. Bu döngünün içindeki "$ekyaz->adi;" verilerinin hepsinin virgülle ayrılarak veya yanyana farklı bir satırda kullanabilir miyiz ?

    Döngünün dışında bir yerde kullanmak istiyorum..
  • 07-02-2018, 06:34:31
    #2
      <?php
      $ekyazar=mysql_query( "SELECT * FROM makaleyazar WHERE makale ='$makale->id' ORDER BY sira ASC ");
    while($ekyaz=mysql_fetch_object($ekyazar)){
      $adlar[] = $ekyaz->adi;
       }
      $adlar = implode(", ",$adlar);
      echo $adlar; // Ad1, Ad2, Ad3
      ?>
  • 07-02-2018, 07:20:04
    #3
    Responsive adlı üyeden alıntı: mesajı görüntüle
      <?php
      $ekyazar=mysql_query( "SELECT * FROM makaleyazar WHERE makale ='$makale->id' ORDER BY sira ASC ");
    while($ekyaz=mysql_fetch_object($ekyazar)){
      $adlar[] = $ekyaz->adi;
       }
      $adlar = implode(", ",$adlar);
      echo $adlar; // Ad1, Ad2, Ad3
      ?>
    Çalışmadı efendim bir skıntı var sanırım.
  • 07-02-2018, 07:53:29
    #4
    @gencduyu; nesi çalışmadı anlamadım. döngü içerisinde gelen isimleri bir diziye ekleyip döngü dışında birleştiriyorsunuz. while öncesinde bir dizi tanımlayın, $dizi = array(); gibi, while içerisinde de bu diziye ekleyeceklerinizi $dizi[] = değer şeklinde ekleyin. döngü sonrasında isterseniz bunları implode fonksiyonu ile birleştirin. bu kadar.
  • 07-02-2018, 08:06:27
    #5
    evet kullanılabilir. ama en son döngüdeki veri kullanılır. eğer tümünü kullanmak isterseniz farklı bir değişkene atıp sonra tekrar kullanacaksınız





    Responsive adlı üyeden alıntı: mesajı görüntüle
      <?php
      $ekyazar=mysql_query( "SELECT * FROM makaleyazar WHERE makale ='$makale->id' ORDER BY sira ASC ");
    while($ekyaz=mysql_fetch_object($ekyazar)){
      $adlar[] = $ekyaz->adi;
       }
      $adlar = implode(", ",$adlar);
      echo $adlar; // Ad1, Ad2, Ad3
      ?>
    alıntı değişkenini boş array olarak tanımlamanız gerekli
  • 08-02-2018, 02:16:44
    #6
    Responsive adlı üyeden alıntı: mesajı görüntüle
    @gencduyu; nesi çalışmadı anlamadım. döngü içerisinde gelen isimleri bir diziye ekleyip döngü dışında birleştiriyorsunuz. while öncesinde bir dizi tanımlayın, $dizi = array(); gibi, while içerisinde de bu diziye ekleyeceklerinizi $dizi[] = değer şeklinde ekleyin. döngü sonrasında isterseniz bunları implode fonksiyonu ile birleştirin. bu kadar.
    $dizi[] kullandığım için 500 hatası veriyor bu işlemi başka bir mantıkla yapamam mı ?
  • 08-02-2018, 02:45:37
    #7
    gencduyu adlı üyeden alıntı: mesajı görüntüle
    $dizi[] kullandığım için 500 hatası veriyor bu işlemi başka bir mantıkla yapamam mı ?
    Aslında @Responsive 'in belirttiği yol en pratik ve doğru yoldur. 2. bir yolda değişkene atama yapmak. iki yolunda aşağıda örneklerini paylaşıyorum.
    1.yol: (arraya atayıp implode ile birleştirme)
    <?php
          $ekyazar=mysql_query( "SELECT * FROM makaleyazar WHERE makale ='$makale->id' ORDER BY sira ASC ");
        while($ekyaz=mysql_fetch_object($ekyazar)){
          $adlar[] = $ekyaz->adi;
        }
          $adlar_text = implode(", ",$adlar);
          echo $adlar_text; // Ad1, Ad2, Ad3
    ?>
    2. yol: (değişkene atamak)
    <?php
        $adlar_string = '';
          $ekyazar=mysql_query( "SELECT * FROM makaleyazar WHERE makale ='$makale->id' ORDER BY sira ASC ");
        while($ekyaz=mysql_fetch_object($ekyazar)){
          $adlar_string .= $ekyaz->adi . ', ';
        }
        echo $adlar_string; // Ad1, Ad2, Ad3 ,
    ?>
  • 08-02-2018, 20:05:13
    #8
    yasarkemaldag adlı üyeden alıntı: mesajı görüntüle
    Aslında @Responsive 'in belirttiği yol en pratik ve doğru yoldur. 2. bir yolda değişkene atama yapmak. iki yolunda aşağıda örneklerini paylaşıyorum.
    1.yol: (arraya atayıp implode ile birleştirme)
    <?php
          $ekyazar=mysql_query( "SELECT * FROM makaleyazar WHERE makale ='$makale->id' ORDER BY sira ASC ");
        while($ekyaz=mysql_fetch_object($ekyazar)){
          $adlar[] = $ekyaz->adi;
        }
          $adlar_text = implode(", ",$adlar);
          echo $adlar_text; // Ad1, Ad2, Ad3
    ?>
    2. yol: (değişkene atamak)
    <?php
        $adlar_string = '';
          $ekyazar=mysql_query( "SELECT * FROM makaleyazar WHERE makale ='$makale->id' ORDER BY sira ASC ");
        while($ekyaz=mysql_fetch_object($ekyazar)){
          $adlar_string .= $ekyaz->adi . ', ';
        }
        echo $adlar_string; // Ad1, Ad2, Ad3 ,
    ?>
    HTTP ERROR 500 hatası veriyor ikiside yani anlayamadım.
  • 08-02-2018, 21:09:44
    #9
    gencduyu adlı üyeden alıntı: mesajı görüntüle
    HTTP ERROR 500 hatası veriyor ikiside yani anlayamadım.
    herhangi bir yerde yazım hatası vs. yapıyor olabilirsiniz, error_log dosyanızı kontrol edin veya php.ini üzerinden display_errors=On yaparak ekran hataları açarak net hata koduna ulaşabilirsiniz.