Merhaba arkadaşlar. öncelikle ilgilendiğiniz için teşekkür ediyorum.
Ben Php Nuke de bir modul hazırlıyorum bilgi yarışması modulu şuanda tam olarak bitmiş sayılır yalnız bir sorunum var aslında sorun olmaz ama ben öyle olmasını istemiyorum.
Sorun şu sql veritabanımda 150 tane soru var, bu sorulardan random olarak sorular ıyarışmacı uyenin karşısına çıkarıyorum. Biliyorunuzdur RAND() ile sql den çektiğim id leri belli bir süre sonra tekrar random olarak oluşturabiliyor yani bir kez çıkan bir soru örneğin 13 üncü soru çıktıktan 8 soru sonra tekrar yarışmacının karşısına çıkabiliyor. Ben bunu engellemek istiyorum aynı yarışma içerisinde yarışmacının karşısına farklı farklı sorular çıkmasını istiyorum. Bunu bir çok sitede araştırdım ama bir türlü kesin çözümü bulamadım. Bir arkadaş bana şöle YARDIM etti dizi oluşturup çıkan doru id lerini Diziye aktarmamı söledi örnek olarakta kodları yazdı ama yine sonuç aynı oldu ama en iyiside o oldu 20 soruda bir aynı soru denk gelmeye başladı ama yine yeterli değil benim istediğim 150 soru varsa o kadar sorunun sorulması her seferinde bir soru çıkacak karşısına toplu olarak değil. Arkadaşın verdiği dizi ye aktarma kodlarını da vereyim belki bir faydası olur.
$tmp[$e]=$sayi; //Her üretilen sayı bir diziye aktarılıyor...
sql tablomu ve sql sorgulamamı aşaya yazıyorum.
SQL TABLOM :
Kod:
CREATE TABLE nuke_bilgims (
id int(11) NOT NULL auto_increment,
soru varchar(255) NOT NULL,
a varchar(255) NOT NULL,
b varchar(255) NOT NULL,
c varchar(255) NOT NULL,
d varchar(255) NOT NULL,
yanit int(1),
puan int(3) DEFAULT '0' NOT NULL,
auth varchar(25) NOT NULL,
authemail varchar(255) NOT NULL,
gorun int(11) NOT NULL,
cdogru int(11) DEFAULT '0' NOT NULL,
cyanlis int(11) DEFAULT '0' NOT NULL,
PRIMARY KEY (id)
);
SQL SORGULAMAM
Kod:
$result = sql_query("SELECT DISTINCT id, soru, a, b, c, d, puan, auth FROM ".$prefix."_bilgims ORDER BY RAND()", $dbi);
while ($row = $db->sql_fetchrow($result, $dbi)) {
$id = intval($row['id']);
$soru = stripslashes($row['soru']);
$a = stripslashes($row['a']);
$b = stripslashes($row['b']);
$c = stripslashes($row['c']);
$d = stripslashes($row['d']);
$puan = intval($row['puan']);
$auth = stripslashes($row['auth']);
}
Scriptimin test etmek için test amaçlı olarak Free hostinde kurduğum siteme 6 tane kullanıcı adı vereceğim nasıl çalıştını kontrol etmek isteyen arkadaşlar baka bilirler. Sitemin adresi http://www.bilgim.net
Kullanıcı adları Parolaları hepsinin aynı Parola : BiLgiMTest
Kullanıcı adları:
BiLgiMTest1
BiLgiMTest2
BiLgiMTest3
BiLgiMTest4
BiLgiMTest5
BiLgiMTest6
bu dizine aktarma o kadar zor işki işin içinden çıkamıyorum kitap aldım arkadaştan orda da benim yapmak istediğim yöntemle alakalı bişi yok.
ben nasıl bişi yapmam lazım bu konuda bari birileri fikir verebilirmi dizi ye aktarmak tan vaz geçtim sql yormayacak bir çözüm buna benzer kod yada işlem yapan arkadaşlar olmadımı?
Bu forumda yeni başlıklar açamazsınız Bu forumdaki başlıklara cevap veremezsiniz Bu forumdaki mesajlarınızı değiştiremezsiniz Bu forumdaki mesajlarınızı silemezsiniz Bu forumdaki anketlerde oy kullanamazsınız