• 15-12-2012, 13:44:23
    #1
    Üyeliği durduruldu
    Arkadaşlar takıldığım bir konu var çözemedim. Takım ve oyuncu iki tablom var. Takım tablosunda oyuncuların id si var. Takım url çalıştırdığımda, Oyuncular tablosundan oyuncu url ve ismini çekmek istiyorum . Yardımcı olursanız sevinirim.

    include('baglan.php');
    $t_url=$_GET["t_url"];
    $sql=mysql_query("select * from BURASINI NASIL TANIMLAMAM LAZIM ÇÖZEMEDİM where t_url=$t_url");

    while($write=mysql_fetch_assoc($sql)){

    echo '<a href="'.$write['f_url'].'">'.$write['f_adi'].'</a>';

    url çalıştırdığımda şu sonucu almak istiyorum

    Takım adı: A Mili Takım
    Oyuncular: Arda Turan, Selçuk İnan , Hamit Altıntop , Necip Uysal , Mustafa Pektemek

    Tabloların yapısı

    oyuncu

    f_id f_adi f_url
    1 Alex de Souza alex-de-souza
    2 Arda Turan arda-turan
    3 Selçuk İnan selcuk-inan
    4 Hamit Altıntop hamit-altintop
    5 Necip Uysal necip-uysal
    6 Mustafa Pektemek mustafa-pektemek

    takım

    t_id t_adi t_oyuncu t_url
    1 Galatasaray 3,4 galatasaray
    2 A Mili Takım 2,3,4,5,6 a-mili-takim
    3 Fenerbahçe 1 fenerbahce
    4 Beşiktaş 5,6 besiktas
  • 15-12-2012, 17:15:31
    #2
    mysql inner join ile yapabilirsin.
  • 16-12-2012, 17:09:52
    #3
    Üyeliği durduruldu
    aşağıdaki şekilde çalışıyor o da (FIND_IN_SET) ilk veriyi çekiyor

    CONCAT dersem bütün oyuncu tablosunu çekiyor. Paranteze alıp birşey demezsem çalışmıyor.

    <?php

    $conn = mysql_connect("localhost", "root", "");

    if (!$conn) {
    echo "Unable to connect to DB: " . mysql_error();
    exit;
    }

    if (!mysql_select_db("futbol")) {
    echo "Unable to select mydbname: " . mysql_error();
    exit;
    }

    $sql = "SELECT b.*
    FROM takim a
    LEFT JOIN oyuncu b
    ON FIND_IN_SET(b.f_id, a.t_oyuncu)
    WHERE a.t_url = ".$_GET["t_url"]." ";

    $result = mysql_query($sql);

    if (!$result) {
    echo "Could not successfully run query ($sql) from DB: " . mysql_error();
    exit;
    }

    if (mysql_num_rows($result) == 0) {
    echo "No rows found, nothing to print so am exiting";
    exit;
    }


    while ($row = mysql_fetch_assoc($result)) {
    echo $row["f_adi"];
    echo $row["f_url"];

    }

    mysql_free_result($result);

    ?>


    CREATE TABLE oyuncu
    (`f_id` varchar(8), `f_adi` varchar(13), `f_url` varchar(13))
    ;

    INSERT INTO oyuncu
    (`f_id`, `f_adi`, `f_url`)
    VALUES
    (1, 'Iker Casillas', 'iker-casillas'),
    (2, 'Mesut Ozil', 'mesut-ozil'),
    (3, 'Xavi', 'xavi'),
    (4, 'Victor Valdés', 'victor-valdes')
    ;
    takım

    t_id t_adi t_oyuncu t_url
    CREATE TABLE takim
    (`t_id` varchar(8), `t_adi` varchar(16), `t_url` varchar(14), `t_oyuncu` varchar(50))
    ;

    INSERT INTO team
    (`t_id`, `t_adi`, `t_url`, `t_oyuncu`)
    VALUES
    (1, 'FC Barcelona', 'fc-barcelona', '3,4'),
    (2, 'Real Madrid C.F.', 'real-madrid-cf', '1,2')
    ;
  • 16-12-2012, 22:44:41
    #4
    Kimlik doğrulama veya yönetimden onay bekliyor.
    xsabianus adlı üyeden alıntı: mesajı görüntüle
    Arkadaşlar takıldığım bir konu var çözemedim. Takım ve oyuncu iki tablom var. Takım tablosunda oyuncuların id si var. Takım url çalıştırdığımda, Oyuncular tablosundan oyuncu url ve ismini çekmek istiyorum . Yardımcı olursanız sevinirim.

    include('baglan.php');
    $t_url=$_GET["t_url"];
    $sql=mysql_query("select * from BURASINI NASIL TANIMLAMAM LAZIM ÇÖZEMEDİM where t_url=$t_url");

    while($write=mysql_fetch_assoc($sql)){

    echo '<a href="'.$write['f_url'].'">'.$write['f_adi'].'</a>';

    url çalıştırdığımda şu sonucu almak istiyorum

    Takım adı: A Mili Takım
    Oyuncular: Arda Turan, Selçuk İnan , Hamit Altıntop , Necip Uysal , Mustafa Pektemek

    Tabloların yapısı

    oyuncu

    f_id f_adi f_url
    1 Alex de Souza alex-de-souza
    2 Arda Turan arda-turan
    3 Selçuk İnan selcuk-inan
    4 Hamit Altıntop hamit-altintop
    5 Necip Uysal necip-uysal
    6 Mustafa Pektemek mustafa-pektemek

    takım

    t_id t_adi t_oyuncu t_url
    1 Galatasaray 3,4 galatasaray
    2 A Mili Takım 2,3,4,5,6 a-mili-takim
    3 Fenerbahçe 1 fenerbahce
    4 Beşiktaş 5,6 besiktas
    Arkadaşım o şekilde tablo yapısı olmaz. Oyuncular tablonda int bir alan açıp , takım idlerini oraya gir tek tek. Milli takım içinde ayrıyeten ekle veya birde ayrı bir alan ekle milli takım diye. Milli takımda oyunuyorsa 1, oynamıyorsa 0 yaparsın, ama ayrı eklemen daha iyi.

    yani oyuncu tablon:
    f_id   t_id    f_adi   f_url  milli_takim
    1          3        Alex de Souza    alex-de-souza  0
    2          1         Arda Turan        arda-turan 1
    şeklinde olacak. Takımı futbolcularını alacağın zaman da:

    $sql = 'select a.t_adi, b.* from takim a, oyuncu b where b.t_id=a.t_id and a.t_url="'.$_GET["t_url"].'"';
    şeklinde alabilirsin. Ayrıca diğer işlemlerinde de arama, listeleme vs. kolaylık sağlar.

    Bu arada $_GET'den gelen bilgi o şekilde direk kullanılmaz. Siteyi uçuruverirler. Filtreden geçirip kullanacaksın.
  • 17-12-2012, 00:32:27
    #5
    aslında 1 viewde yaratabilirsin.