• 24-10-2012, 15:32:22
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Herkeze şimdiden hayırlı bayramlar.

    Aşağıdaki gibi bir sorunum var yardımcı olabilir misiniz? Şimdiden Teşekkürler.

    Aşağıdaki örnekte sadece örenciler tablosundan veri çekebiliyorum. Ben istiyorumki öğreciler tablosundaki cinsiyet_id karşılığını da xml de cinsiyet tablosundaki cinsiyet_id karşılığı olsun istiyorum. Örneğin cinsiyet_id 1 ise xml de erkek, 1 ise kadın gibi.


    PHP kodlarım aşağıdaki gibidir.

    <?php
    $dbhost     ="localhost";     /*Veritabanı host adresi*/
    $dbuser        ="root";         /*veritabanı kullanıcı adı*/
    $dbpass        ="";            /*veritabanı kullanıcı adı, localhost olduğu için boş*/
    $dbadi        ="xml";    /*oluşturduğumuz veritabanın adı*/
    
    $baglanti=Mysql_Connect($dbhost, $dbuser, $dbpass);
        if (!$baglanti) die ("Mysql Bağlantısı Başarısız");
        
    mysql_select_db($dbadi,$baglanti) or die ("Veritabanı bağlantısı sağlanamadı");    
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" />
    <title>XML Oluştur</title>
    </head>
    
    <body>
    <?php
    $fp = fopen("veriler.xml",'r+');
    $yazi = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<ogrenciler>";
    $query = mysql_query("select * from ogrenciler");
    while($arr=mysql_fetch_assoc($query))
    {
    $id = $arr['id'];
    $cinsiyet_id = $arr['cinsiyet_id'];
    $ad = $arr['ad'];
    $soyad = $arr['soyad'];
    $tckimlik = $arr['tckimlik'];
    $ad = iconv("ISO-8859-9", "UTF-8", $ad);
    $soyad = iconv("ISO-8859-9", "UTF-8", $soyad);
    $yazi3 = "<ogrenci>
     <id>$id</id>
     <cinsiyet_id>$cinsiyet_id</cinsiyet_id>
     <ad>$ad</ad>
     <soyad>$soyad</soyad>
     <tckimlik>$tckimlik</tckimlik>
     </ogrenci>";
    @$yazi2 = $yazi2.$yazi3;
    }
    $yazi = $yazi.$yazi2."</ogrenciler>";
    fwrite($fp,$yazi);
    ?>
    </body>
    </html>


    SQL çıktısı aşağıdadır.

    SET FOREIGN_KEY_CHECKS=0;
    
    -- ----------------------------
    -- Table structure for `cinsiyet`
    -- ----------------------------
    DROP TABLE IF EXISTS `cinsiyet`;
    CREATE TABLE `cinsiyet` (
      `cinsiyet_id` decimal(65,0) NOT NULL DEFAULT '0',
      `cinsiyet` varchar(111) DEFAULT NULL,
      PRIMARY KEY (`cinsiyet_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    
    -- ----------------------------
    -- Records of cinsiyet
    -- ----------------------------
    INSERT INTO `cinsiyet` VALUES ('1', 'kadin');
    INSERT INTO `cinsiyet` VALUES ('2', 'erkek');
    
    -- ----------------------------
    -- Table structure for `ogrenciler`
    -- ----------------------------
    DROP TABLE IF EXISTS `ogrenciler`;
    CREATE TABLE `ogrenciler` (
      `id` varchar(111) NOT NULL DEFAULT '',
      `cinsiyet_id` varchar(65) DEFAULT NULL,
      `ad` varchar(111) DEFAULT '',
      `soyad` varchar(111) DEFAULT '',
      `tckimlik` decimal(11,0) DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    
    -- ----------------------------
    -- Records of ogrenciler
    -- ----------------------------
    INSERT INTO `ogrenciler` VALUES ('1', '2', 'süleyman', 'çelik', '11111111111');
    INSERT INTO `ogrenciler` VALUES ('2', '1', 'gülendam', 'çelik', '22222222222');
  • 24-10-2012, 15:46:11
    #2
    if($cinsiyet_id == 1){
    echo  "<cinsiyet_id>erkek</cinsiyet_id>";
    }elseif($cinsiyet_id == 2){
    echo  "<cinsiyet_id>kadın</cinsiyet_id>";
    }else{
    echo  "<cinsiyet_id>cinsiyetsiz</cinsiyet_id>";
    }
  • 24-10-2012, 16:04:46
    #3
    Deimosx adlı üyeden alıntı: mesajı görüntüle
    if($cinsiyet_id == 1){
    echo  "<cinsiyet_id>erkek</cinsiyet_id>";
    }elseif($cinsiyet_id == 2){
    echo  "<cinsiyet_id>kadın</cinsiyet_id>";
    }else{
    echo  "<cinsiyet_id>cinsiyetsiz</cinsiyet_id>";
    }
    ilginiz için teşekkürler. benim yaptığım bir örneklemdi. ben bunu daha gelişmiş bir şekilde kullanmak isiyorum. o nedenle o veriyi cinsiyet tablosundan alması gerekmektedir.
  • 24-10-2012, 16:53:48
    #4
    tabloları vermişsiniz zaten görmemişim pardon

    SELECT o.ad,o.soyad,o.tckimlik,c.cinsiyet FROM ogrenciler o LEFT OUTER JOIN cinsiyet c 
    ON (o.cinsiyet_id=c.cinsiyet_id)
    olarak çalışması lazım.
  • 24-10-2012, 17:07:33
    #5
    teşekkürler.
    kontrol edip döneceğim.

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 17:07:33 -->-> Daha önceki mesaj 17:01:15 --

    gts adlı üyeden alıntı: mesajı görüntüle
    tabloları vermişsiniz zaten görmemişim pardon

    SELECT o.ad,o.soyad,o.tckimlik,c.cinsiyet FROM ogrenciler o LEFT OUTER JOIN cinsiyet c 
    ON (o.cinsiyet_id=c.cinsiyet_id)
    olarak çalışması lazım.
    çalışmadı yada ben yanlış yaptım. tam olarak ana php sayfası üzerinde yazabilirmisiniz. yani tüm kodu koyabilir misiniz.

    Teşekkürler.
  • 24-10-2012, 18:16:53
    #6
    <?php
    $dbhost ="localhost";     /*Veritabanı host adresi*/
    $dbuser ="root";         /*veritabanı kullanıcı adı*/
    $dbpass ="";            /*veritabanı kullanıcı adı, localhost olduğu için boş*/
    $dbadi  ="xml";    /*oluşturduğumuz veritabanın adı*/
    
    $baglanti=Mysql_Connect($dbhost, $dbuser, $dbpass);
    if (!$baglanti) die ("Mysql Bağlantısı Başarısız");
    
    mysql_select_db($dbadi,$baglanti) or die ("Veritabanı bağlantısı sağlanamadı");
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" />
        <title>XML Oluştur</title>
    </head>
    
    <body>
    <?php
    $fp = fopen("veriler.xml",'r+');
    $yazi = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<ogrenciler>";
    $query = mysql_query("SELECT o.id, o.ad,o.soyad,o.tckimlik,c.cinsiyet FROM ogrenciler o LEFT OUTER JOIN cinsiyet c ON (o.cinsiyet_id=c.cinsiyet_id)");
    while($arr=mysql_fetch_assoc($query))
    {
        $id = $arr['id'];
        $ad = $arr['ad'];
        $soyad = $arr['soyad'];
        $tckimlik = $arr['tckimlik'];
        $cinsiyet = $arr['cinsiyet'];
        $ad = iconv("ISO-8859-9", "UTF-8", $ad);
        $soyad = iconv("ISO-8859-9", "UTF-8", $soyad);
        $yazi3 = "<ogrenci>
     <id>$id</id> 
     <cinsiyet>$cinsiyet</cinsiyet>
     <ad>$ad</ad> 
     <soyad>$soyad</soyad> 
     <tckimlik>$tckimlik</tckimlik> 
     </ogrenci>";
        @$yazi2 = $yazi2.$yazi3;
    }
    $yazi = $yazi.$yazi2."</ogrenciler>";
    fwrite($fp,$yazi);
    ?>
    </body>
    </html>
    ben denedim çalışıyor. Dener misiniz?
    sorun olursa msn adresim : sksndkz@gmail.com
  • 25-10-2012, 11:43:26
    #7
    ilginiz için teşekkürler. elinize sağlık.