• 17-07-2007, 22:49:04
    #1
    Merhaba arkadaşlar,

    ßenim sorunuu anlatmakta biraz zor ama deniycem. ßen bir test scripti yazmaya çalışıyorum. Yani adminlerin istedikleri kadar test ekleyebileceği ve üyelerinde bu testleri çözebileceği bir sistem. Benim sorunum veri tablosunun hangi sistemle oluştursam die düşünüyorum düşünüyorum ama çok iç açıcı şeyler gelmiyor aklıma benm oluşturduğum tablolalrı açıklamaları ile birlikte veriyorum lütfen daha basit bir sistem aklınıza gelirse yardımcı olmanızı rica ediyorum.

    Tablo1 : anket
    id
    anketno
    soruno
    baslik
    soru
    tarih
    onay
    sonucx
    sonucy
    sonucz [Buradaki sonucxyzler üyelerin test sonuçlarında aldıkları puanın text karşılığı olacak onun mantığıını az çok kurdum orda sorunum yok]

    Tablo2: cevaplar
    id
    ip
    uyeno
    cevapsikki
    sikx
    siky
    sikz [Buradaki sikxyzler (ŞIK) demektir. Ve önem sırasını gösterir. ORdada bi Sorunum Yok]

    Tablo3 : siklar
    id
    sikid
    siklar

    Tablolarım bu şekilde. Mesela son yazılan testi alabilmek için bir sorgu kodu oluşturdum şu şekilde,

    select anket.anketno, anket.soruno, anket.baslik, anket.soru, cevaplar.sikx, cevaplar.siky, cevaplar.sikz, siklar.sikid, siklar.siklar
    from
    anket, cevaplar, siklar
    where
    anket.anketno = cevaplar.anketno AND anket.anketno = siklar.anketno
    order by anket.anketno desc
    tabi bu sorguda sondan başa doğru sıralı geliyor sadece son anketi alabilmek için sorguya ne eklemem gerekiyor acaba bunuda öğrenmek istiyorum. Biliyorum çok karışık oldu ama napıyım çözemedim kusura bakmayın
  • 17-07-2007, 23:27:40
    #2
    Tablo 1 de tarih diye bir sutun koy ve tarihi otomoik okuyup tabloya yazarsa sistem çok basit hale gelecektir sorun kalmayacaktır
  • 17-07-2007, 23:37:56
    #3
    tablo1 de zaten tarih bileşeni var peki enson eklenen veriyi tarihe göre almak için nasıl bir sorgu çalıştırmam gerek ?
  • 18-07-2007, 05:43:41
    #4
    limit 0,1
    sadece bir kayıt getirir. sende sondan kayıtları istediğine göre en sondaki kaydı bu şekilde alırsın.
  • 18-07-2007, 06:03:40
    #5
    disconnect adlı üyeden alıntı: mesajı görüntüle
    limit 0,1
    sadece bir kayıt getirir. sende sondan kayıtları istediğine göre en sondaki kaydı bu şekilde alırsın.
    son kayıdı alırımda ben şimdi bir test script yazıyorum yani son test mesela 10 soru var ben 10 soruyuda lalıcam senin dediğin gibi eklenen son soruyu alabilirim sanırım sadeece
  • 18-07-2007, 11:53:50
    #6
    tablo1 de zaman formatını UNIX_TIME_STAMP olduğunu var sayarak aşağıdaki komutu kullan (tabi kendine göre düzenleyecksin)

    SELECT * FROM tablo WHERE tarih > UNIX_TIMESTAMP(NOW())
    Yanlız senin verdiğin sorgu senin yapmaya çalıştığın şeyi karşılamaz onun için

    RIGHT/LEFT JOIN komutunu kullanmalısın
  • 18-07-2007, 20:58:03
    #7
    tespara adlı üyeden alıntı: mesajı görüntüle
    tablo1 de zaman formatını UNIX_TIME_STAMP olduğunu var sayarak aşağıdaki komutu kullan (tabi kendine göre düzenleyecksin)

    SELECT * FROM tablo WHERE tarih > UNIX_TIMESTAMP(NOW())
    Yanlız senin verdiğin sorgu senin yapmaya çalıştığın şeyi karşılamaz onun için

    RIGHT/LEFT JOIN komutunu kullanmalısın
    Hemşerim senin msn adresin varmı verebilir misin yardımcı olmanı rica etsem.
  • 18-07-2007, 22:54:26
    #8
    select anket.anketno, anket.soruno, anket.baslik, anket.soru, cevaplar.sikx, cevaplar.siky, cevaplar.sikz, siklar.sikid, siklar.siklar
    from
    anket, cevaplar, siklar
    where
    anket.anketno = cevaplar.anketno AND anket.anketno = siklar.anketno
    order by anket.id desc limit 1
  • 19-07-2007, 02:02:24
    #9
    captainzap adlı üyeden alıntı: mesajı görüntüle
    select anket.anketno, anket.soruno, anket.baslik, anket.soru, cevaplar.sikx, cevaplar.siky, cevaplar.sikz, siklar.sikid, siklar.siklar
    from
    anket, cevaplar, siklar
    where
    anket.anketno = cevaplar.anketno AND anket.anketno = siklar.anketno
    order by anket.id desc limit 1
    kardeş sağolasın ama benm testde 1 soru yok bu sadece bir satır alacak bense anketno=2 olan bütün satırları almak istiyorum ve baştan aşağı sıralamak istiyorum.