| |||||||
![]() |
| | LinkBack | Thread Tools | Display Modes |
|
#1
| |||
| |||
| sql konusunda kendine güvenenlere acil bir sorum war.
merhabalar . üzerinde çalıştığım yeni projemde sql sorunu yaşıyorum. konuyu açıklayacak olursak : veri tabanında yorumlar ve isimler diye iki tablom var . isimler tablosu şu şekilde : +-----+-------+-------+------------+------------+-----------+----------+--------+----------+-------| |--------------------------------------------|isimler|--------------------------------------------| +-----+-------+-------+------------+------------+-----------+----------+--------+----------+-------| | iid | isim | +-----+-------+-------+------------+------------+-----------+----------+--------+----------+-------| | 1 | mehmet | | 3 | ali | yorumlar tablosu şu şekilde : +-----+-------+-------+------------+------------+-----------+----------+--------+----------+-------| |--------------------------------------------|yorumlar|--------------------------------------------| +-----+-------+-------+------------+------------+-----------+----------+--------+----------+-------| |yid| iid | yorum | +-----+-------+-------+------------+------------+-----------+----------+--------+----------+-------| |56 | 1 | yorumlardan biri | |57 | 3 | baska bir yorum | |57 | 1 | dahada baska bir yorum | yid=yorum id iid= isim id yorum = yorumlar şimdi şöle bişey yapmak istiyorum : en çok yorum yazılan 10 isimi alt alta dizmek : yani şu şekilde: mehmet (2) ali (1) en çok yorum alanı en üste almalı ve parantez içerisinde yorum sayısını yazmalı. bu konuda bir çalışma yaptım her isime parantez içerisinde kaç tane yorum olduğunu yazıyorum ama bu isimleri parantez içerisindeki rakamın büyükten küçüğe doğru sıralayamıyorum. yani sıralama yorum sayısına göre olmuyor isime göre oluyor : kullandığım kodlar aşağıdaki gibi... <? $sql6= "SELECT * FROM isimler ORDER BY fadi ASC"; $Calistirlistele6 = mysql_query ($sql6); while(list($v_fid1,$v_fadi1,$v_adres1,$v_ftelefon1 ,$v_kateid1,$v_yetkili1,$v_ykadi1,$v_ysifre1)=mysq l_fetch_array($Calistirlistele6)) { ?> <lii> <a style='text-decoration: none' href="isimincele.php?iid=<? print $v_fid1; ?>"><? print $v_fadi1; ?>(<? $sql3= "SELECT COUNT(*) FROM yorumlar WHERE fid='$v_fid1' and durum='Onayli' "; $Calistirlistele3 = mysql_query ($sql3); while(list($veri3)=mysql_fetch_array($Calistirlist ele3)) print $veri3;?>)</a></lii><br> <? } ?> bu kodları nasıl düzenlersek istediğim gibi yaparız sıralamayı ? yorum sayısına göre sıralamalı. yardımlarınız için tşkkr ederim. |
|
#2
| ||||
| ||||
| http://www.canver.net/viewtopic.php?f=19&t=15504 Kullanım mantığı bana, komutlar php.net'e aittir. Dosya GPL lisanslıdır, istediğiniz gibi kullanabilirsiniz, sadece nereden geldiğini unutmayın. Aşağıdaki örnekte, direk sayfa içinde mysql bağlantısı yapıldı, ve tüm işlemler mysql komutları ile yapıldı. Acemilerin zorlanmamı için hata fonksiyonlarını da ekledim. Dosya içinde yeterince açıklama yaptığımı sanıyorum, anlamadığınız yerleri sorabilir veya php.net adresine bakabilirsiniz. Dosyalar: database.sql Code: -- phpMyAdmin SQL Dump -- version 2.10.3 -- http://www.phpmyadmin.net -- -- Anamakine: localhost -- Üretim Zamanı: 01 Kasım 2007 saat 08:08:49 -- Sunucu sürümü: 5.0.45 -- PHP Sürümü: 5.2.3 SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; -- -- Veritabanı: `test_wdp` -- -- -------------------------------------------------------- -- -- Tablo yapısı: `wdp_isimler` -- CREATE TABLE `wdp_isimler` ( `iid` mediumint(8) unsigned NOT NULL auto_increment, `isim` varchar(255) collate latin1_general_ci NOT NULL, PRIMARY KEY (`iid`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=4 ; -- -- Tablo döküm verisi `wdp_isimler` -- INSERT INTO `wdp_isimler` (`iid`, `isim`) VALUES (1, 'ahmet'), (2, 'mehmet'), (3, 'veli'); -- -------------------------------------------------------- -- -- Tablo yapısı: `wdp_yorumlar` -- CREATE TABLE `wdp_yorumlar` ( `yid` mediumint(8) unsigned NOT NULL auto_increment, `iid` mediumint(8) unsigned NOT NULL, `yorum` text collate latin1_general_ci, PRIMARY KEY (`yid`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=5 ; -- -- Tablo döküm verisi `wdp_yorumlar` -- INSERT INTO `wdp_yorumlar` (`yid`, `iid`, `yorum`) VALUES (1, 1, 'ahmet - yorum 1'), (2, 1, 'ahmet - yorum 2'), (3, 1, 'ahmet - yorum 3'), (4, 2, 'mehmet - yorum 1'); PHP Code:
__________________ Profesyonel phpBB3 hizmetleri |
|
#3
| ||||
| ||||
|
Güzelmiş. Keşke PHP bilsem
__________________ ----------------------------------------------------------------------------------------- >> LÜTFEN ÜCRETSİZ DESTEK TALEP ETMEK İÇİN MSN ADRESLERİMİZİ EKLEMEYİNİZ. HER TÜRLÜ ÜCRETSİZ DESTEK İÇİN FORUMLARIMIZI KULLANINIZ. TEŞEKKÜRLER << |
|
#4
| ||||
| ||||
|
__________________ RAMBilişim İnternet Hizmetleri - YS-839 |
|
#5
| ||||
| ||||
|
Şimdiki aklım olsa geçmişte harcadığım vakti php öğrenmek için harcardım. Sabahtan akşama çalışıyoruz 3-5 kuruşa, 2 php kodlayıp kat kat kazananları gördükçe fıttırmamak elde değil hehehe ![]() (lafım size değil ALEXIS yanlış anlamayın)
__________________ ----------------------------------------------------------------------------------------- >> LÜTFEN ÜCRETSİZ DESTEK TALEP ETMEK İÇİN MSN ADRESLERİMİZİ EKLEMEYİNİZ. HER TÜRLÜ ÜCRETSİZ DESTEK İÇİN FORUMLARIMIZI KULLANINIZ. TEŞEKKÜRLER << |
|
#6
| ||||
| ||||
|
Bu arada "ben php bilmiyorum" diyecek kadar ben de bilmiyorum, kodları 1 saat içinde php.net teki mysql komutlarını öğrenerek yazdım. LEFT JOIN, CONCAT gibi gelişmiş SQL komutlarını ise hiç bilmiyorum. Asıl uzmanlık alanım phpBB framework'u, oradaki sql sınıfları, hazır fonksiyonlar sıradan php kadar zor değil.
__________________ Profesyonel phpBB3 hizmetleri |
|
#7
| ||||
| ||||
|
Ama işte parayı kazandıranda sıradan php değildir sanırım?
__________________ ----------------------------------------------------------------------------------------- >> LÜTFEN ÜCRETSİZ DESTEK TALEP ETMEK İÇİN MSN ADRESLERİMİZİ EKLEMEYİNİZ. HER TÜRLÜ ÜCRETSİZ DESTEK İÇİN FORUMLARIMIZI KULLANINIZ. TEŞEKKÜRLER << |
![]() |
| Thread Tools | |
| Display Modes | |
| |




