• 26-08-2010, 15:42:07
    #1
    Buk
    Üyeliği durduruldu
    PHPde ve MYSQLde yeni sayılırım. Sorunum da basit bir mysql sorunu.
    Amacım; test_cevap tablosundaki son 41 test_cevap_value değerini almak. Tabi "WHERE" içindeki user_id ve test_no şartlarını da sağlamak kaydıyla.
    Aşağıdaki sql cümlesini yazıp çalıştırdığımda saçma sapan bir sonuç dönüyor.
    Nasıl bir sql cümlesi yazmalıyım.

    Şimdiden teşekkürler..

    SELECT test_cevap.test_cevap_value
    			 FROM test_cevap, test_cevapcilar
    			 WHERE test_cevapcilar.user_id =1234
    			 AND test_cevap.test_cevap_id = test_cevapcilar.test_cevap_id
    			 AND test_cevap.test_no =1
    			 ORDER BY test_cevap.test_cevap_id DESC
    			 LIMIT 41
    test_cevap tablosu:


    CREATE TABLE IF NOT EXISTS `test_cevap` (
      `test_cevap_id` int(11) NOT NULL AUTO_INCREMENT,
      `test_soru_id` int(6) NOT NULL,
      `test_cevap_value` smallint(2) NOT NULL,
      `test_no` int(11) NOT NULL,
      PRIMARY KEY (`test_cevap_id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=87 ;
    
    --
    -- Tablo döküm verisi `test_cevap`
    --
    
    INSERT INTO `test_cevap` (`test_cevap_id`, `test_soru_id`, `test_cevap_value`, `test_no`) VALUES
    (1, 1, 4, 1),
    (2, 2, 3, 1),
    (3, 3, 2, 1),
    (4, 4, 4, 1),
    (5, 5, 3, 1),
    (6, 6, 2, 1),
    (7, 7, 4, 1),
    (8, 8, 4, 1),
    (9, 9, 1, 1),
    (10, 10, 4, 1),
    (11, 11, 5, 1),
    (12, 12, 3, 1),
    (13, 13, 4, 1),
    (14, 14, 1, 1),
    (15, 15, 5, 1),
    (16, 16, 4, 1),
    (17, 17, 3, 1),
    (18, 18, 2, 1),
    (19, 19, 5, 1),
    (20, 20, 2, 1),
    (21, 21, 2, 1),
    (22, 22, 3, 1),
    (23, 23, 4, 1),
    (24, 24, 5, 1),
    (25, 25, 4, 1),
    (26, 26, 4, 1),
    (27, 27, 3, 1),
    (28, 28, 2, 1),
    (29, 29, 1, 1),
    (30, 30, 5, 1),
    (31, 31, 4, 1),
    (32, 32, 2, 1),
    (33, 33, 2, 1),
    (34, 34, 4, 1),
    (35, 36, 3, 1),
    (36, 37, 1, 1),
    (37, 38, 4, 1),
    (38, 39, 5, 1),
    (39, 40, 4, 1),
    (40, 41, 2, 1),
    (41, 31, 4, 1),
    (42, 32, 2, 1),
    (43, 33, 2, 1),
    (44, 34, 4, 1),
    (45, 36, 3, 1),
    (46, 37, 1, 1),
    (47, 38, 4, 1),
    (48, 39, 5, 1),
    (49, 40, 4, 1),
    (50, 21, 2, 1),
    (51, 22, 3, 1),
    (52, 23, 4, 1),
    (53, 24, 5, 1),
    (54, 25, 4, 1),
    (55, 26, 4, 1),
    (56, 27, 3, 1),
    (57, 28, 2, 1),
    (58, 29, 1, 1),
    (59, 30, 5, 1),
    (60, 1, 4, 2),
    (61, 2, 5, 2),
    (62, 3, 1, 2),
    (63, 4, 5, 2),
    (64, 5, 3, 2),
    (65, 6, 3, 2),
    (66, 7, 2, 2),
    (67, 8, 1, 2),
    (68, 9, 3, 2),
    (69, 10, 2, 2),
    (70, 11, 4, 2),
    (71, 12, 5, 2),
    (72, 13, 3, 2),
    (73, 14, 3, 2),
    (74, 15, 1, 2),
    (75, 16, 5, 2),
    (76, 17, 2, 2),
    (77, 18, 3, 2),
    (78, 19, 3, 2),
    (79, 20, 4, 2),
    (80, 21, 4, 2),
    (81, 22, 3, 2),
    (82, 23, 4, 2),
    (83, 24, 2, 2),
    (84, 25, 5, 2),
    (85, 26, 3, 2),
    (86, 27, 4, 2);

    test_cevapcilar tablosu:


    
    CREATE TABLE IF NOT EXISTS `test_cevapcilar` (
      `test_cevapcilar_id` int(11) NOT NULL AUTO_INCREMENT,
      `user_id` varchar(20) NOT NULL,
      `test_cevap_id` int(11) NOT NULL,
      `test_no` int(3) NOT NULL,
      PRIMARY KEY (`test_cevapcilar_id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=87 ;
    
    --
    -- Tablo döküm verisi `test_cevapcilar`
    --
    
    INSERT INTO `test_cevapcilar` (`test_cevapcilar_id`, `user_id`, `test_cevap_id`, `test_no`) VALUES
    (1, '1234', 1, 1),
    (2, '1234', 2, 1),
    (3, '1234', 3, 1),
    (4, '1234', 4, 1),
    (5, '1234', 5, 1),
    (6, '1234', 6, 1),
    (7, '1234', 7, 1),
    (8, '1234', 8, 1),
    (9, '1234', 9, 1),
    (10, '1234', 10, 1),
    (11, '1234', 11, 1),
    (12, '1234', 12, 1),
    (13, '1234', 13, 1),
    (14, '1234', 14, 1),
    (15, '1234', 15, 1),
    (16, '1234', 16, 1),
    (17, '1234', 17, 1),
    (18, '1234', 18, 1),
    (19, '1234', 19, 1),
    (20, '1234', 20, 1),
    (21, '1234', 21, 1),
    (22, '1234', 22, 1),
    (23, '1234', 23, 1),
    (24, '1234', 24, 1),
    (25, '1234', 25, 1),
    (26, '1234', 26, 1),
    (27, '1234', 27, 1),
    (28, '1234', 28, 1),
    (29, '1234', 29, 1),
    (30, '1234', 30, 1),
    (31, '1234', 31, 1),
    (32, '1234', 32, 1),
    (33, '1234', 33, 1),
    (34, '1234', 34, 1),
    (35, '1234', 35, 1),
    (36, '1234', 36, 1),
    (37, '1234', 37, 1),
    (38, '1234', 38, 1),
    (39, '1234', 39, 1),
    (40, '1234', 40, 1),
    (41, '1234', 41, 1),
    (42, '1234', 42, 1),
    (43, '1234', 43, 1),
    (44, '1234', 44, 1),
    (45, '1234', 45, 1),
    (46, '1234', 46, 1),
    (47, '1234', 47, 1),
    (48, '1234', 48, 1),
    (49, '1234', 49, 1),
    (50, '1234', 50, 1),
    (51, '1234', 51, 1),
    (52, '1234', 52, 1),
    (53, '1234', 53, 1),
    (54, '1234', 54, 1),
    (55, '1234', 55, 1),
    (56, '1234', 56, 1),
    (57, '1234', 57, 1),
    (58, '1234', 58, 1),
    (59, '1234', 59, 1),
    (60, '1234', 60, 2),
    (61, '1234', 61, 2),
    (62, '1234', 62, 2),
    (63, '1234', 63, 2),
    (64, '1234', 64, 2),
    (65, '1234', 65, 2),
    (66, '1234', 66, 2),
    (67, '1234', 67, 2),
    (68, '1234', 68, 2),
    (69, '1234', 69, 2),
    (70, '1234', 70, 2),
    (71, '1234', 71, 2),
    (72, '1234', 72, 2),
    (73, '1234', 73, 2),
    (74, '1234', 74, 2),
    (75, '1234', 75, 2),
    (76, '1234', 76, 2),
    (77, '1234', 77, 2),
    (78, '1234', 78, 2),
    (79, '1234', 79, 2),
    (80, '1234', 80, 2),
    (81, '1234', 81, 2),
    (82, '1234', 82, 2),
    (83, '1234', 83, 2),
    (84, '1234', 84, 2),
    (85, '1234', 85, 2),
    (86, '1234', 86, 2);
  • 26-08-2010, 21:09:18
    #2
    SELECT test_cevap.test_cevap_value 
                 FROM test_cevap, test_cevapcilar 
                 WHERE test_cevapcilar.user_id =1234 
                 AND test_cevap.test_cevap_id = test_cevapcilar.test_cevap_id 
                 AND test_cevap.test_no =1 
                 ORDER BY test_cevap.test_cevap_id DESC 
                 LIMIT 41
    FROM test_cevap, test_cevapcilar burdaki virgül olayında bir gariplik var gibi kardeş.
  • 27-08-2010, 03:05:53
    #3
    Buk
    Üyeliği durduruldu
    Nasıl bir gariplik olabilir ki. İki farklı tablodan veri alıyorum. test_cevap ve test_cevapcilar
  • 27-08-2010, 04:15:26
    #4
    orada bir gariplik yok fakat bu şekilde hata tespiti zor olur bence tablolarınızı export edip buraya eklerseniz daha sağlıklı sonuç alınır
  • 07-09-2010, 21:58:57
    #5
    Buk
    Üyeliği durduruldu
    Export kodlarını da yazıp ilk mesajımı güncelledim.
    Yardımlarınızı bekliyorum. Teşekürler..