Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

Tamamen bir uzman sorusu.

merhaba arkadaşlar

bir sistem yapıyorum bu sistemde hit uygulaması yapacağım ama bi yerde takıldım

tam olarak yapmak istediğim şey

firmaların hitleri
şimdi 2 tane tablomn war biri firmalar diğeri firmalar_hit
firmanın sayfasına girnce firmalardaki firma id'si firmalar_hit deki sayfaya kayıt ediliyor gun ay yıl giren ip ve firma id'si olarak ben firmalar_hit deki verileri yani en çok hit alan firmaları ekrana yazdıracağım bunun için nasl bir sorgu yapmalıyım yani firmar_hit deki tablomda firmalar war mesela 1 id li firma dan 5 veri 2idli firmadan 3 veri var yani budurumda 1 idli firma daha çok tıklanılmış bunu ekrana nasl bastırabilirim?
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Cevaplar

  • coderme adlı üyenin fotoğrafı
    10 yıl önce yazılmış
    12 cevap - 3 soru
    "SELECT firmalar. * , SUM( hit_sayisi ) AS TOPLAM
    FROM firmahit
    RIGHT JOIN firmalar ON firmalar.firma_id = firmahit.`hit_firma_id`
    WHERE firmalar.firma_onay=1
    GROUP BY firmalar.firma_id
    ORDER BY toplam DESC
    LIMIT 10"
    



    firma rehberi scripttinde yapmıştım tablo yapına göre düzenlersin .)
    • sharq adlı üyenin fotoğrafı sharq
      bunu mysql_query("burayamı yazcam") ?? yani orda çalışırmı?
      10 yıl önce yazılmış
    • sharq adlı üyenin fotoğrafı sharq
      ve yukardaki işlemden hiç birşey anlamadım :)
      10 yıl önce yazılmış
    • coderme adlı üyenin fotoğrafı coderme
      anlaşılmayacak birşey yok 2 tablon var 1 tablonda firmaların var firma her görüntülenmeye firmalar_hit tablosuna yeni bir satır ekliyorsun doğrumuyum.verdiğim sorguda anlaşılmayacak bişey yok.şu tablo yapını görelim bi nasıl yaptın.
      10 yıl önce yazılmış
    • sharq adlı üyenin fotoğrafı sharq
      kardeş şimdi bak zaten firma detay sayfasına girnce firma_hit tablosuna direk gün ay yıl we giren sitenin ip deyerini ekliyor eğer tabloda değer yoksa yani her ip ile firmaya 1 kere giriliyor.
      benim amacım bu firmalar_hit tablosundan en çok tıklanan firmayı bulmak.
      10 yıl önce yazılmış
    • coderme adlı üyenin fotoğrafı coderme
      seni çok iyi anlıyorum çünkü verdiğim sorgu o işe yarıyor sana anlatmaya çalıştığım o sorgudaki senin tablo yapın neyse ona göre oraya alanların isimleri girmek.
      10 yıl önce yazılmış
    • sharq adlı üyenin fotoğrafı sharq
      firmalar_hit tablo yapısı
      CREATE TABLE `firma_hit` (
        `id` int(10) NOT NULL auto_increment,
        `firma_id` varchar(10) NOT NULL,
        `gun` varchar(80) NOT NULL,
        `ay` varchar(80) NOT NULL,
        `yil` varchar(80) NOT NULL,
        `ip` varchar(80) NOT NULL,
        PRIMARY KEY  (`id`)
      ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ;
      


      bu hit tablom firmadetay.php sayfasına girince yani firmaya tıklanınca firmanın detay sayfasına gidiyor burda hemen bir sorgu yapıyor


      
      <?php if ($_GET['id'] == "" || !is_numeric($_GET['id'])){ header("location:index.php");} else { $firma = $_GET['id']; }
      
      			
      			$sorgu = mysql_query("SELECT * FROM firmalar WHERE id='$firma'");
      			while($yaz = mysql_fetch_assoc($sorgu)){
      				extract($yaz);
      				
      			}
      				
      	$ip = $_SERVER['REMOTE_ADDR'];	$gun = date("d"); $ay	=date("m"); $yil = date("Y");
      			
      $hitsorgu = mysql_query("SELECT * FROM firma_hit WHERE firma_id='$firma' and ip='$ip' and gun='$gun' and ay='$ay' and yil='$yil'");
      /* burda bu ip ile bu gün içinde bu firmaya tıklanılmışmı diye sorguluyor */
      			if(mysql_num_rows($hitsorgu)<1){ 
      			  	mysql_query("INSERT INTO firma_hit (firma_id,ip,gun,ay,yil) VALUES ('$firma','$ip','$gun','$ay','$yil')"); /* burda tıklanılmamışsa firma_hit tablosuna veri giriliyor */
      			}
      			
      				
      
      ?>          
      



      Ve index.php sayfasında firmalar_hit tablosundaki en çok hit alan 6 firmayı ekrana basmak istiyorum
      10 yıl önce yazılmış
    • coderme adlı üyenin fotoğrafı coderme
      denermisin
      $row = mysql_query("SELECT firmalar. * , SUM( id ) AS TOPLAM
      FROM firmahit
      RIGHT JOIN firmalar ON firmalar.id = firmahit.`firma_id`
      GROUP BY firmalar.id
      ORDER BY toplam DESC
      LIMIT 10
      ");
      
      
      10 yıl önce yazılmış
    • sharq adlı üyenin fotoğrafı sharq
      dostum Allah aşkına bunun neresini denicem yani bu ne bunu nerde denicem sadece bunu yazsak bişi çalşmaz yani echo falan ypsak da bişi olmaz we olmadıda yani.
      10 yıl önce yazılmış
    • coderme adlı üyenin fotoğrafı coderme
      eh be arkadaşım kendi ağzınla söylüyorsun bunu yazdırsak diye döngüye sokacaksın .



      $sorgu= mysql_query("SELECT firmalar. * , SUM( id ) AS TOPLAM
      FROM firmahit
      RIGHT JOIN firmalar ON firmalar.id = firmahit.`firma_id`
      GROUP BY firmalar.id
      ORDER BY toplam DESC
      LIMIT 10
      ");
      
      while($sonuc=mysql_fetch_array($sorgu)){
          
      echo $sonuc['id']; // neyi yazdırmak istiyorsan 
      
      }
      
      10 yıl önce yazılmış
    • sharq adlı üyenin fotoğrafı sharq
      = hatası werdi 102 ci satrda

      sorgu = mysql_query("SELECT firmalar. * , SUM( id ) AS TOPLAM yani bu satırda
      kardeşim şimdi sen


      SELECT firmalar. * , SUM( id ) AS TOPLAM
      FROM firmahit
      RIGHT JOIN firmalar ON firmalar.id = firmahit.`firma_id`
      GROUP BY firmalar.id
      ORDER BY toplam DESC
      LIMIT 10
      



      burada neler yapmak istediğimizi anlatrmısın
      10 yıl önce yazılmış
    • coderme adlı üyenin fotoğrafı coderme
      CREATE TABLE `firma_hit` (
        `id` int(10) NOT NULL auto_increment,
        `firma_id` varchar(10) NOT NULL,
        `gun` varchar(80) NOT NULL,
        `ay` varchar(80) NOT NULL,
        `yil` varchar(80) NOT NULL,
        `ip` varchar(80) NOT NULL,
        PRIMARY KEY  (`id`)
      ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=
      


      bu senin tablon.

      buda benim sorgum.


      SELECT firmalar. * , SUM( id ) AS TOPLAM
      FROM firmahit
      RIGHT JOIN firmalar ON firmalar.id = firmahit.`firma_id`
      GROUP BY firmalar.id
      ORDER BY toplam DESC
      LIMIT 10
      
      


      sum ile senin hit tablondaki id değerlerini toplıyorum yani senin firman 6 defa görüntülenmiş ise o hit tablonda 6 satır bulunur ve sum ile ben bunları topladım bu kod çalışıyoeum arkadaşım şuan ben iyi yazdığım bir yazılımda kullanıyorum senin hata var 102.satırdı dediğin sende kaynaklı bu kodda hiçbir hata yok kullanım olarak şu hata veren sayfanın kodlaarını burya yaz bakalım bi.
      10 yıl önce yazılmış
    • sharq adlı üyenin fotoğrafı sharq
      SELECT firmalar. * , SUM( id ) AS TOPLAM
      FROM firmahit
      RIGHT JOIN firmalar ON firmalar.id = firmahit.`firma_id`
      GROUP BY firmalar.id
      ORDER BY toplam DESC
      LIMIT 10


      firmalar. * , burdakinokta falan ne kardeşim yani bişi anladım hayatımda ilk defa böle bi kod gördüm yani anlamadım doğrudur belki ama madem doğru neden çalşmıyor yani döngüye bile girmiyor

      mysql_error dediğimde

      You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''firma_id' GROUP BY firmalar.id ORDER BY toplam DESC LIMIT 10' at line 1

      bu hatayı werdi
      10 yıl önce yazılmış
    • coderme adlı üyenin fotoğrafı coderme
      firmarlar ve firma_hit tablolarını yazarmısın.
      10 yıl önce yazılmış
    • sharq adlı üyenin fotoğrafı sharq
      CREATE TABLE `firma_hit` (
        `id` int(10) NOT NULL auto_increment,
        `firma_id` varchar(10) NOT NULL,
        `gun` varchar(80) NOT NULL,
        `ay` varchar(80) NOT NULL,
        `yil` varchar(80) NOT NULL,
        `ip` varchar(80) NOT NULL,
        PRIMARY KEY  (`id`)
      ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ;
      
      




      CREATE TABLE `firmalar` (
        `id` int(10) NOT NULL auto_increment,
        `firmaadi` varchar(500) NOT NULL,
        `eposta` varchar(200) NOT NULL,
        `kullaniciadi` varchar(200) NOT NULL,
        `sifre` varchar(80) NOT NULL,
        `md5sifre` varchar(50) NOT NULL,
        `sektor` varchar(80) NOT NULL,
        `altsektor` varchar(80) NOT NULL,
        `firmayetkilisi` varchar(300) NOT NULL,
        `resim` varchar(150) NOT NULL,
        `il` varchar(80) NOT NULL,
        `ilce` varchar(80) NOT NULL,
        `adres` text NOT NULL,
        `telefon` varchar(100) NOT NULL,
        `gsm` varchar(100) NOT NULL,
        `fax` varchar(100) NOT NULL,
        `website` varchar(500) NOT NULL,
        `firmatanitimi` text NOT NULL,
        `aramasonucu` varchar(500) NOT NULL,
        `kayittarihi` varchar(80) NOT NULL,
        `ip` varchar(80) NOT NULL,
        `video` varchar(300) NOT NULL,
        `hit` int(100) NOT NULL default '0',
        PRIMARY KEY  (`id`)
      ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=28 ;
      
      10 yıl önce yazılmış
    • sharq adlı üyenin fotoğrafı sharq
      sorguyu bu şekilde düzenledim


      $sorgu= mysql_query("SELECT firmalar. * , SUM( id ) AS TOPLAM
      	FROM firma_hit
      	RIGHT JOIN firmalar ON firmalar.id = firma_hit.firma_id
      	GROUP BY firmalar.id
      	ORDER BY toplam DESC
      	LIMIT 10") or die(mysql_error());
      	 
      	while($sonuc=mysql_fetch_array($sorgu)){
      	     
      	echo $sonuc['id']; // neyi yazdırmak istiyorsan
      	 
      	}	
      


      we "Column 'id' in field list is ambiguous" bu hatayı aldım ?
      10 yıl önce yazılmış
    • coderme adlı üyenin fotoğrafı coderme
      anlayamadığım bir sorun bu senin tablondan kaynaklı heralde neyse sen bu hit tablonun bunu kullan.
      eski firma_hit tablonu sil aşağıda verdiğim sorguyu yükle.

      CREATE TABLE `firmahiti` (
        `gun` varchar(80) NOT NULL,
        `ay` varchar(80) NOT NULL,
        `yil` varchar(80) NOT NULL,
        `id` int(11) NOT NULL auto_increment,
        `hit_sayisi` int(11) NOT NULL,
        `firma_id` int(11) NOT NULL,
        `ip` varchar(25) NOT NULL,
        PRIMARY KEY  (`id`)
      ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=8 ;
      
      



      ve verileri çekerkende bunu kullanırsan sorun olmayacaktır.




      $sorgu = mysql_query("SELECT firmalar. * , SUM( hit_sayisi ) AS TOPLAM
      FROM firmahiti
      RIGHT JOIN firmalar ON firmalar.id = firmahiti.`firma_id`
      GROUP BY firmalar.id
      ORDER BY toplam DESC
      LIMIT 10 ");
      
      10 yıl önce yazılmış
    • sharq adlı üyenin fotoğrafı sharq
      sen yanlış anlamıssın ben firmaların hitini deil hit firma tablosundaki aynı firma_id'li verileri ekrana bastırmaya çalışıyorum.
      10 yıl önce yazılmış
    • coderme adlı üyenin fotoğrafı coderme
      arkadaşım lütfen biraz sorguyu çalıştırıpta cevap yaz o sorguyu biraz incelersen ve sql 'de inner join ne demek incelersen burdaki sorgunun senin istediğin sorgu olduğunu anlayacaksın phpmyadmin'den şu sorguyu çalıştır sonucu o zaman göreceksin.
      10 yıl önce yazılmış
    • sharq adlı üyenin fotoğrafı sharq
      	$sorgu = mysql_query("SELECT firmalar. * , SUM( hit_sayisi ) AS TOPLAM
      	FROM firmahiti
      	RIGHT JOIN firmalar ON firmalar.id = firmahiti.`firma_id`
      	GROUP BY firmalar.id
      	ORDER BY toplam DESC
      	LIMIT 10 ");
      


      böle demişşin ama bakarsan bnm firmahiti diye ne bi alanım war nede tablom yani sen mantığını bile sölemiyon sum toplar falan diyosun we ben bi bok anlamııyorum ki kendime göre düzenleyeyim ya açıkla yada açıklayan bir lik wer bu sorguyu
      10 yıl önce yazılmış
    • coderme adlı üyenin fotoğrafı coderme
      arkadaşım sen niye artislik yapıyorsun yukardaki mesajımı okumadan 3 mesaj yukarı bak.
      10 yıl önce yazılmış
    • sharq adlı üyenin fotoğrafı sharq
      kardeşim bak artislik falan yapmadım anlatmaya çalışıyorum hem tam olarak anlatamadım hem de sen tam olarak anlamadın. şimdi ben tablodaki aynı id'li değerlerin sayısını nasl bulurum ve bu sayıyı büyükten küçüğe doğru nasl yazdırabilirim?
      10 yıl önce yazılmış
    • coderme adlı üyenin fotoğrafı coderme
      benim üst tarafta verdiğim sorguları çalıştırsan bunları sormayacaksın bana ben senin istediğini anladım
      10 yıl önce yazılmış
    • sharq adlı üyenin fotoğrafı sharq
      kardeş ben sana burdan anlatamadım olayı :s

      http://www.uzmansorusu.com/soru/2684

      buraya birdaha yazdım açıklamalı olarak sorunu istersen gir bak oraya
      10 yıl önce yazılmış