INNER JOIN.

Merhaba arkadaşlar öncelikle kolay gelsin hepinize. iki ayrı tablodan verileri çekmek.
sorgu şekli ; 

$seolink = seo("$b[kategori_adi]");

$genel_sorgu = mysql_query("SELECT * FROM firmalar WHERE (kategoriId = '$id') and onay = '1'");

$toplam_kayit=mysql_num_rows($genel_sorgu);

$toplam_sayfa=ceil($toplam_kayit / $sayfalik_kayit);

$carp=$sayfa * $sayfalik_kayit;

$sql = mysql_query("SELECT * FROM firmalar WHERE kategoriId = '$id' and onay = '1' LIMIT $baslangic, $sayfalik_kayit");


___________________________

From firmalar, firmalar2 şeklinde denedim olmadı.

$sql = mysql_query("SELECT * FROM firmalar INNER JOIN firmalar2 ON kategoriId=kategoriId WHERE kategoriId = '$id' and onay = '1' LIMIT $baslangic, $sayfalik_kayit"); 

Şeklinde de denedim olmadı. bunu nasıl yapabilirim. şimdiden teşekkür ediyorum

2012-07-27 07:13:41

Php

WHERE kısmında hata yapmışsın. birde bu tip durumlarda hataları göstermek lazım.

komutun alt satırına şunu yaz.

echo mysql_error();

Her programcı birgün Php yi tadacaktır
2012-07-27 11:27:28

üsteki bölümde yazdığım gibi yapınca çalışıyor yine de yazmam gerekiyormu 

2012-07-27 11:32:08

Edit:

Php

onu demiyorum. JOIN denemesi yapıyorsun ve hatayı göremiyorsun. o zaman dediğim komutu yazarsan ekranda hata sebebi yazar.

mesela şöyle yazar :There is no such row `kategoriId`.

bu tip hatayı forumda yazarsan, sana Türkçesini yazarım.


senin komut da yaklaşık böyle birşey olacak:

$sql = mysql_query("SELECT * FROM firmalar INNER JOIN firmalar2
                 ON firmalar2 .kategoriId=firmalar.Id
                     
WHERE kategoriId = '$id' and onay = '1'
                 LIMIT $baslangic, $sayfalik_kayit");

Her programcı birgün Php yi tadacaktır
2012-07-27 12:05:50

Php

iki tabloda aynı sütun ismi varsa sorun çıkar. herşeyi belirtmek en güzeli. tablo.sutun şeklinde WHERE kısmında yazmak lazım.

Her programcı birgün Php yi tadacaktır
2012-07-27 12:06:54

Bu sefer böyle denedim;

$genel_sorgu = mysql_query("SELECT * FROM firmalar INNER JOIN firmalar2 ON firmalar2.kategoriId=firmalar.kategoriId WHERE kategoriId = '$id' and onay = '1'");

$toplam_kayit=mysql_num_rows($genel_sorgu);

$toplam_sayfa=ceil($toplam_kayit / $sayfalik_kayit);

$carp=$sayfa * $sayfalik_kayit;

$sql = mysql_query("SELECT * FROM firmalar INNER JOIN firmalar2 ON firmalar2.kategoriId=firmalar.kategoriId WHERE kategoriId = '$id' and onay = '1' LIMIT $baslangic, $sayfalik_kayit");

echo mysql_error(); 

hata : Column 'kategoriId' in where clause is ambiguous

2012-07-27 12:15:48

alicilinAli Fırat Güler

Eğer iki tabloyu join yapmışsanız. ve bu tablolarda aynı isimlerde iki stunlar bulunuyorsa eğer;

stun adı belirtirken tablo adınında belirtilmesi gerekli;

WHERE tabloadi.stunadi = 'merhaba';

gibi bir kullanım yapmanız gerekli aksi halde

Column 'kategoriId' in where clause is ambiguous hatasını almanız doğaldır

bu hatanın türkçeside;

Sayın coder sen bana kategoriId adında bir stuna göre şart koştun ama

birleştirilen tablonun ikisindede bu isimde bir stun mevcut. Ben hangi tablonun bu isimdeki stununa göre şart koşacağımı bilemedim diyor.

2012-07-27 17:03:59

çok teşekkür ederim de 

$sql = mysql_query("SELECT * FROM firmalar INNER JOIN firmalar2 ON firmalar2.kategoriId=firmalar.kategoriId WHERE kategoriId = '$id' and onay = '1' LIMIT $baslangic, $sayfalik_kayit");

bu kodun düzeltilmiş hali nasıl oluyor peki, dediğinize göre

2012-07-27 20:48:47

alicilinAli Fırat Güler

$sql = mysql_query("SELECT * FROM firmalar INNER JOIN firmalar2 ON firmalar2.kategoriId=firmalar.kategoriId WHERE tablo adı.kategoriId = '$id' and onay = '1' LIMIT $baslangic, $sayfalik_kayit");

yukarda  tablo adı yazan yere kullanmak istediğin tablonun adını yazarsın olur biter.

Düzeltilmişi budur.

2012-07-27 22:05:15

dediğiniz gibi yaptım aynen şu şekilde. 

$genel_sorgu = mysql_query("SELECT * FROM firmalar INNER JOIN firmalar2 ON firmalar2.kategoriId=firmalar.kategoriId WHERE firmalar.kategoriId = '$id' and onay = '1'");

$toplam_kayit=mysql_num_rows($genel_sorgu);

$toplam_sayfa=ceil($toplam_kayit / $sayfalik_kayit);

$carp=$sayfa * $sayfalik_kayit;

$sql = mysql_query("SELECT * FROM firmalar INNER JOIN firmalar2 ON firmalar2.kategoriId=firmalar.kategoriId WHERE firmalar.kategoriId = '$id' and onay = '1' LIMIT $baslangic, $sayfalik_kayit");

echo mysql_error();

bu seferde 

Column 'onay' in where clause is ambiguous şeklinde davrandı :)

2012-07-28 00:15:37

Edit:

Edit:

Edit:

Edit:

Edit:

phpkodlari.com © 2009 Herkes Php öğrenecek
Eglence ve Oyun: Gamikro