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
Mysql iki tabloyu birleştirmek
4
●2.193
- 16-12-2012, 17:09:52Üyeliği durdurulduaş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:41Kimlik doğrulama veya yönetimden onay bekliyor.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.xsabianus adlı üyeden alıntı: mesajı görüntüle
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.