Duyuruyu Kapat
Facebook Gözat
Twitter Gözat

aynı sayfada ikitane select nasıl çalıyor

Konu, 'Veritabanları' kısmında Black_Boyss tarafından paylaşıldı.

  1. Black_Boyss

    Black_Boyss Daimi Üye

    Kayıt:
    6 Aralık 2002
    Mesajlar:
    1,218
    Beğenilen Mesajlar:
    0
    Meslek:
    bilgisayar Teknikleri /Donanım/Tekniik destek /sis
    Şehir:
    /etc/YOZGAT
    **** sorgu.php************
    <?

    $db = @mysql_connect ("localhost","root","");
    if (!$db)
    {
    echo "veri tabanına sunucusuna baglanamadı";
    exit();
    }
    if (!@mysql_select_db ("bookmarks", $db))
    {
    echo "musteri veritabanı açılamıyor. tekrar deneyiniz" ;
    exit ();
    }
    $ms_sorgu = mysql_query ("select urun_id,urun_kodu from urun");
    if (!$ms_sorgu)
    {
    echo "sorguda hata var";
    echo mysql_error();
    exit;
    }

    ?>
    ************sorgu*************************

    1. bu
    sorguyu sayfada
    ***include ("sorgu.php") diye çagırıyorum********

    <select name="si_musteri">
    <option value="">musteri seç</option>
    <? while($veriler=mysql_fetch_array($ms_sorgu)): ?>
    <option value="<?=$veriler["ms_id"];?>"> <?=$veriler["ms_isim"];?> </option>
    <?endwhile;?>
    */************************************************
    sorguyu sayfada
    ***include ("sorgu1.php") diye çagırıyorum********

    2. bu
    <select name="si_urun">
    <option value="">Bölüm Seç</option>
    <? while($verileri=mysql_fetch_array($ms_sorgu)): ?>
    <option value="<?=$verileri["urun_id"];?>"> <?=$verileri["urun_kodu"];?> </option>
    <?endwhile;?>


    bolece iki sorgu sayfasından farklı sorgular alıyorum ve select lere aktarmak istiyorum ama
    1. oluyor
    2. olmuyor

    hemde farklı sorunlarla karsılastım iki sorgu işini joinle nasıl yapacaz

    joınlerle olurmu acaba
    yada enhızlı sorgu için baska bişimi yazsam
    switch / case mi kullansak anlamadık

    ha birde mesela bunlardan select lerden sayfa içindeki
    <input type="text" name="si_urun" value="" maxlength="10" size="0">
    sorgunun içerisindeki veri si_urunadi olsun nasıl aktarılır
    örnek yeter.
     
  2. Black_Boyss

    Black_Boyss Daimi Üye

    Kayıt:
    6 Aralık 2002
    Mesajlar:
    1,218
    Beğenilen Mesajlar:
    0
    Meslek:
    bilgisayar Teknikleri /Donanım/Tekniik destek /sis
    Şehir:
    /etc/YOZGAT
    :D baya uzun bişi anlaşılmaz yazmışım bende araştırmadayım size de sordum
    :D ım clumsy person:D
     
  3. mkarabulut

    mkarabulut Misafir

    Evet baya uzun ve anlaması zor :D

    Sorgu1.php dosyasının içeriği nedir ?
    Kodlar parça parça olduğu için bi yorum yapmak zor ama mesela
    Kod:
    include('sorgu.php');
    include('sorgu1.php');
    // Kodların devamı 
    // ...
    
    şeklinde alt alta bir include olayında $ms_sorgu değişkenleri karışacağı için kodların düzgün çalışmayacağı aşikar.. bilmiyorum tabi sen nasıl bi şeyler yazdın..

    Join konusuna gelince yapmak istediğini tam olarak anlamadım ama sanırım görünüşe göre yapmak istediğini join ile yapamazsın... İşine yarayacak sql anahtar kelimesi iki SELECT işlemini aynı anda yapan UNION'dır.
    Kod:
    SELECT * FROM tablo1
    UNION
    SELECT * FROM tablo2
    
    YAlnız ufak bi dip not : UNION mysql'de 4 versiyonundan sonra desteklenmeye başlandı.

    Ama herşeye rağmen Union kullanmadan da işlemlerini halledior olabilmen gerek sanırım..

    Son sorduğun soruyu doğru anladıysm cevabı input etiketinin value özelliğini kullanmaktır
    Kod:
    <input type=text name='si_urun' value="<? echo $veriler['urunadi']?>">
    
    Bir de bu kodda alabileceğin özel bi durum içn önlem ise urunadi içinde " karakterinin geçme durumudur. Çünkü bu karakter geçince HTML içindeki akışı bozacak ve urunadi ekrana düzgün yazdırılmayacaktır
    yapman gereken ise şöyle bi şeyler sanırım
    Kod:
    <? echo str_replace("\"","& quot ;",$veriler['urunadi']);?>
    
    Kolay gelsin.
     
  4. Black_Boyss

    Black_Boyss Daimi Üye

    Kayıt:
    6 Aralık 2002
    Mesajlar:
    1,218
    Beğenilen Mesajlar:
    0
    Meslek:
    bilgisayar Teknikleri /Donanım/Tekniik destek /sis
    Şehir:
    /etc/YOZGAT
    dosyalar teker teker yazıyorum
    *************sorgu.php**********************
    <?

    $db = @mysql_connect ("localhost","root","");
    if (!$db)
    {
    echo "veri tabanına sunucusuna baglanamadı";
    exit();
    }
    if (!@mysql_select_db ("bookmarks", $db))
    {
    echo "musteri veritabanı açılamıyor. tekrar deneyiniz" ;
    exit ();
    }
    $ms_sorgu = mysql_query ("select ms_id,ms_isim from musteri");
    if (!$ms_sorgu)
    {
    echo "sorguda hata var";
    echo mysql_error();
    exit;
    }

    ?>

    bu musteriler select sorgusu
    *************************************************
    yukardaki kod gibi aynısı urunler içinde var
    adı sorgu1.php
    ************************************************

    kayıt modul.php**********************************

    fonksiyon olarak ana sayfadan cagırıyorum


    function siparis_kayit()
    {
    // Sipariş kayıt formu
    ?>
    <?
    include ("sorgu.php");
    include ("sorgu2.php");
    ?>

    <body bottommargin=0 leftmargin=0 background=login_dosyalar/bg.gif topmargin=0
    rightmargin=0 marginwidth="0" marginheight="0">
    <form name="siparis" method="post" action="si_kayit.php">
    <table width="93%" border="1" bordercolor="#000066" height="894">
    <tr>
    <td height="55" width="329">
    <div align="right">Sipariş Veren Firma :
    <select name="si_musteri">
    <option value="">Bölüm Seç</option>
    <? while($veriler=mysql_fetch_array($ms_sorgu)): ?>
    <option value="<?=$veriler["ms_id"];?>"> <?=$veriler["ms_isim"];?> </option>
    <?endwhile;?>
    </select>
    </div>
    </td>
    <td height="0" rowspan="2" align="center">
    <div align="center">
    <p><font size="5">Sipariş Kayıt Formuna Hoş Geldiniz.&nbsp;&nbsp;</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
    </div>
    </td>
    </tr>
    <tr>
    <td width="329" height="55">
    <div align="right">Sipariş Edilecek Ürün

    <select name="si_urun">
    <option value="">Bölüm Seç</option>
    <? while($verileri=mysql_fetch_array($ms_sorgu)): ?>
    <option value="<?=$verileri["urun_id"];?>"> <?=$verileri["urun_kodu"];?> </option>
    <?endwhile;?>
    </select>
    </div>
    </td>
    </tr>
    <tr>
    <td width="329" height="55">
    <div align="right">Sipariş Tarihi &nbsp;:
    <input type="text" name="si_date" value="" maxlength="10" size="0">
    </div>
    </td>
    <td rowspan="11">
    <div align="center"><img src="images/ensart-2.gif" alt="" width="500" height="500"></div>
    </td>
    </tr>
    <tr>
    <td width="329" height="55">
    <div align="right">Teslim Tarihi :
    <input type="text" name="si_teslimdate" value="" maxlength="10">
    </div>
    </td>
    </tr>
    <tr>
    <td width="329" height="55">
    <div align="right">Sipariş Miktarı:
    <input type="text" name="si_miktar" value="" size="0" maxlength="20">
    </div>
    </td>
    </tr>
    <tr>
    <td width="329" height="55">
    <div align="right"> 1. Baskı Renkgi :
    <input type="text" name="si_renk1" value="" maxlength="20">
    </div>
    </td>
    </tr>
    <tr>
    <td width="329" height="55">
    <div align="right">2. Baskı Renkgi :
    <input type="text" name="si_renk2" value="" maxlength="20">
    </div>
    </td>
    </tr>
    <tr>
    <td width="329" height="55">
    <div align="right">Poşet Eni :
    <input type="text" name="si_peni" value="" maxlength="10">
    </div>
    </td>
    </tr>
    <tr>
    <td width="329" height="55">
    <div align="right">Poşet Boyu :
    <input type="text" name="si_pboyu" value="" maxlength="10">
    </div>
    </td>
    </tr>
    <tr>
    <td width="329" height="55">
    <div align="right">Filim Kalınlığı :
    <input type="text" name="si_micron" value="" maxlength="5">
    </div>
    </td>
    </tr>
    <tr>
    <td width="329" height="55">
    <div align="right">Özellikleri :
    <input type="text" name="si_ozellik" value="" maxlength="120">
    </div>
    </td>
    </tr>
    <tr>
    <td width="329" height="55">
    <div align="center"><i><b>Ödeme Şekli</b></i></div>
    </td>
    </tr>
    <tr>
    <td width="329" height="55">
    <div align="right">Birim Fiyat :
    <input type="text" name="si_fiyat" value="" maxlength="15">
    </div>
    </td>
    </tr>
    <tr>
    <td width="329" height="48">
    <div align="right">KDV :
    <select name="si_kdv">
    <option value="" selected>----------Seçiniz!----------</option>
    <option value="dahil">Dahil</option>
    <option value="haric">Hariç</option>
    </select>
    </div>
    </td>
    <td height="43">
    <div align="center">
    <input type="submit" name="Submit" value="-----Kayıt-----">
    <input type="reset" name="Submit2" value="-----Temizle-----">
    <input type="submit" name="Submit4" value="-----Çıkış-----">
    </div>
    </td>
    </tr>
    <tr>
    <td height="39" width="329">
    <div align="right">Vade :
    <input type="text" name="si_vade" value="" maxlength="4">
    </div>
    </td>
    <td rowspan="3">
    <p align="center"><img src="images/sol_logo.gif" alt="" width="150" height="34"></p>
    <p align="center"><font size="2">Copyrigh © 1996-2002 Ensar Plastik Sanayi
    Ticaret Limited Şirketi Ticari Yazılımıdır. <u>Bütün Hakları Gizlidir.</u></font></p>
    <p align="center"><font size="2">Görüş ve sorunlarınız için Ensar Plastik
    Ltd.Şti Arayabilirsisniz Telefon : 0354 223 60 19 Fax : 0354 223 60
    17 </font></p>
    </td>
    </tr>
    <tr>
    <td height="45" width="329">
    <div align="right">Sipariş Alan :
    <input type="text" name="si_alan" value="" maxlength="100">
    </div>
    </td>
    </tr>
    <tr>
    <td height="35" width="329">
    <div align="right">Sipariş Veren :
    <input type="text" name="si_veren" value="" maxlength="100">
    </div>
    </td>
    </tr>
    </table>
    </form>
    &nbsp;&nbsp;&nbsp;
    </body>
    </html>

    <?
    };

    yukardaki kod kayıt modul.php içindeki
    siparis kayıt modulu
    iş bu noktada ikitane select var bir musteri iki urun selecti


    acıklama özet
    simdi sipariş sayfasını çagırınca fonkiyonlar kutuphanesinden
    çagırıyorum sayfa içerigini ok
    çagırdıgımda başta göreceksiniz include ("sorgu.php") dosyasındaki fonksiyonlarda geliyor burda sorgu.php içindeki soyalardan veri tabanına baglanıp musteriler listesi alıyor
    ve bu kısıma aktarıyor

    **************************
    <select name="si_musteri">
    <option value="">Bölüm Seç</option>
    <? while($veriler=mysql_fetch_array($ms_sorgu)): ?>
    <option value="<?=$veriler["ms_id"];?>"> <?=$veriler["ms_isim"];?> </option>
    <?endwhile;?>
    *************************

    yukarıdaki kodun aynısını urunler için yapıyorum ama olmuyor
    neden simdi
    include ("sorgu.php");
    include ("sorgu2.php");
    yukardaki dosylar bole olunca ikinci dosya yı musterilere aktarıyor ve musteriler içerigi olmuyor bos kalıyor
    zaten urun kısmına bişi aktaramıyorum
    ama sadece tek
    include ("sorgu.php");
    bu dosyayı çagırınca sorun yok

    acıklama
    include ("sorgu.php"); =?= musteriler sorgu yukarıda kodu verdim

    include ("sorgu1.php"); =?= urunler sorgu ****** / sorgu.php'nin aynısı sadece isimlerdegisik\******
    iş bundan ibaret html code lar orada bi bakın
    :aglama: ne karmasıık
     
  5. Black_Boyss

    Black_Boyss Daimi Üye

    Kayıt:
    6 Aralık 2002
    Mesajlar:
    1,218
    Beğenilen Mesajlar:
    0
    Meslek:
    bilgisayar Teknikleri /Donanım/Tekniik destek /sis
    Şehir:
    /etc/YOZGAT
    :D sorunu halletim ama sole
    <?

    $db = @mysql_connect ("localhost","root","");
    if (!$db)
    {
    echo "veri tabanına sunucusuna baglanamadı";
    exit();
    }
    if (!@mysql_select_db ("bookmarks", $db))
    {
    echo "musteri veritabanı açılamıyor. tekrar deneyiniz" ;
    exit ();
    }
    $ms_sorgu = mysql_query ("select ms_id,ms_isim from musteri order by ms_isim");
    $ms_sorgu2 = mysql_query ("select urun_id,urun_kodu from urun order by urun_kodu");
    if (!$ms_sorgu.!$ms_sorgu2)
    {
    echo "sorguda hata var";
    echo mysql_error();
    exit;
    }

    ?>

    $ms_sorgu = mysql_query
    $ms_sorgu2 = mysql_query
    sizce bu ikisi salıklımı yane bir sorgu actım bi sorgu daha
    *mkarabulut iste burda bi joın kullanamazmıyım
    yane böle iki sorgu kurmasamda tek sorgu içiinde sorsam iki ayrı veri almsam daha mı hızlı olur sizce nasıl bu iş
    ben bu msyql hiç çakmıyom yaw ne iş se
     
  6. sokrates

    sokrates Daimi Üye

    Kayıt:
    8 Temmuz 2002
    Mesajlar:
    537
    Beğenilen Mesajlar:
    0
    Meslek:
    Web Programmer
    Şehir:
    istanbul
    Hocam toblarinda hic ortak alan yok onun icin join isleminin sana faydasi pek olmaz gibi where ile kullanirsan join den verimli sonuclar alirsin illaki kullacam diyosan sole bir dene istersen

    SELECT
    musteri.ms_id,musteri.ms_isim,urun.urun_id,urun.urun_kodu
    FROM
    musteri,urun
    ORDER BY
    musteri.ms_isim,urun.urun_kodu
     
    Son düzenleme yönetici tarafından yapıldı: 30 Aralık 2002
  7. Black_Boyss

    Black_Boyss Daimi Üye

    Kayıt:
    6 Aralık 2002
    Mesajlar:
    1,218
    Beğenilen Mesajlar:
    0
    Meslek:
    bilgisayar Teknikleri /Donanım/Tekniik destek /sis
    Şehir:
    /etc/YOZGAT
    zaten hoca senin dedigin sistemide kullanıyorum ama yazdıgım sordu hangisi daha hızlı ve hangisi daha saglam onu ogrenmek istedim bu yazdıgım sistem tam 4 yıl kullanılacak bişi olacak saglamlık acısında istiyoruz:rolleyes:

    joınler hakkında manyak bilgilendim farklı joın tıpleri kullanıyorum desem nasıl olacak
    senın yazmıs oldugun sql join tipi Cross join belirtelim
    neden deme Where Sözcügü yok :D
    Where kullansaydın Inner Join olurdu :confused:
    e bunlar ne karmasık be ama hangisi daha saglam:)
    yaw böle code paylaşsak ne güzel olur millet yazmaktan kaçınıyor beles bişi için :(