PDA

View Full Version : سوال: ترفند



majidnazarister
شنبه 28 دی 1387, 09:03 صبح
با سلام من یک ازمون الکترونیکی دارم می نویسم و می خوام که تمام سوالات را یکجا نمایش بدهد. برای این کار چون من نمیدونم که تعداد سوالات چند تاست مشکل دارم که چطور جواب ها رو ارسال کنم و اینکه چگونه جوابها را برای سوالات متغیر ذخیره کنم . باید چه کار کرد؟

kiosksoft
شنبه 28 دی 1387, 09:37 صبح
شما اگه در مورد استاندارد جهانی QTI یه تحقیق داشته باشید به جواب تمام سوالات تون خواهید رسید.

من اطلاعات دقیق ندارم, تحقیق کنید اگه نتیجه نرسیدید, بگید که من اقدام کنم.

as13851365
دوشنبه 30 دی 1387, 08:03 صبح
دقیقا نفهمیدم سوال شما چی بود و چی هست ولی :
شما می خواهید یک برنامه تست زنی ایجاد کنید که کاربران با خواندن سوالات و انتخاب جواب های تستی بتونند در آزمون شرکت کنند و در آخر نتیجه را هم ببینند.

اگر چنین باشه شما می تونید سوالات را از دیتابیس بخونید و در صفحه به همراه گزینه ها نمایش بدهید و کاربران وقتی که گزینه ای را انتخاب کردن و کل اطلاعات را ارسال کردن شما این اطلاعات را ذخیره و پردازش کنید و به کاربران نمایش بدهید .

حالا شما مشخص کنید که کجای کار مشکل دارید ؟
زبان برنامه نویسی شما چی هست ؟
از چه بانکی استفاده می کنید ؟
دز نحویه خواندن سوالات و گزینه ها از بانک مشکل دارید ؟
در ارسال گزینه های انتخابی کاربران مشکل دارید ؟

کمی بیشتر توضیح بدهید خیلی خوب می شه .

برای ذخیره کردن جواب ها هم شما می تونید ID فیلد رکورد را در جواب ارسال شده کاربران قرار بدهید مثلا برای این کار شما سه فیلد نیاز دارید با نام های زیر :
ID کلید باشه و مقدارش به صورت اتوماتیک
IDID از نوع عددی باشه و مقدارش هم باید ID مربوط به سوال باشه
Test هم از نوعی که می خواهی باشه و مقدارش گزینه انتخابی کاربر باشه به نظر من از نوع عددی بگیری مثلا برای گزینه الف یک برای گزینه ب دو برای گزینه ج سه و برای گزینه د چهار باشه بهتر خواهد بود

majidnazarister
سه شنبه 01 بهمن 1387, 16:30 عصر
فرض کنید که من چند نوع ازمون دارم که کاربر انها را می بیند حال هر کدام مثلا یکی 12 سوال و دیگری 25 و .... سوال دارد حال کاربر یکی را انتخاب می کند و من میخوام که تمام ان سوالات را یکجا نمایش دهد مثل ازمون واقعی و چون نمی دانم که تعداد سوالات جند تاست بنابر این در ذخیره کردن گزینه صحیح سوالات مشکل دارم یعنی می خوام به صورت پویا عمل کند و از گزینه ی یک تا گزینه ی اخر جواب سوالات را ذخیره کند و در صورت ارسال تمام جوابا ت را ارسال کند .از این واضح تر نمی توانم توضیح دهم.

as13851365
چهارشنبه 02 بهمن 1387, 08:07 صبح
خوب دوست گرامی شما خیلی واضح بیان کردید ولی جواب سوالات من رو ندادید که :



زبان برنامه نویسی شما چی هست ؟
از چه بانکی استفاده می کنید ؟


شما جواب این سوالات رو بده تا با زبان برنامه نویسی ( اگه تونستم ) جواب بدم .

در حالت کلی لازم نیست بدانیم که چند تا سوال در بانک ذخیره شده است ما فقط باید کدنویسی کنیم .

مثلا ما سوالات رو از اولین سوال از بانک می خونیم و به مرورگر می فرستیم و کاربر با انتخاب جواب ها و ارسال آنها ما تمام جواب ها رو می گیریم و هر جواب را در کنار سوال مربوطه قرار می دهیم . همین .

شما در این دو مورد هم مشکل دارید


نحویه خواندن سوالات و گزینه ها از بانک مشکل دارید
ارسال گزینه های انتخابی کاربران مشکل دارید


برای مشکل اول که توضیح دادم نیازی نیست بدانیم چند تا سوال در بانک هست فقط ما باید کمی با ID سوال کار کنیم و ID هر سوال را به گزینه انتخاب کاربر اختصاص بدهید تا بفهمیم که کدام جواب برای کدام سوال است .

برای مشکل دوم هم شما باید از آرایه استفاده کنید تا تمام جواب ها به سایت ارسال بشه که برای این مورد اگر در سایت جستجو کنید چندین مورد خواهید یافت که اگر با مطالعه آنها باز موضوع را نگرفتید در این جا بگید تا بیشتر توضیح داده بشه.

majidnazarister
پنج شنبه 03 بهمن 1387, 09:17 صبح
زبان برنامه نویسی php است وبانک mysql .
ضمن اینکه در انتخاب سوالات و نحوه ی ذخیره و تصحیح نمرات مشکل ندارم فقط در ذخیره تمام سوالات و اینکه اگر سوالی پاسخ داده نشد روی همان سوال پیغام دهد و ارسال جواب تمام سوالات مشکل دارم.

narsic
پنج شنبه 03 بهمن 1387, 12:59 عصر
اگر سوالی پاسخ داده نشد روی همان سوال پیغام دهد و ارسال جواب تمام سوالات مشکل دارم.
با سلام
دوست عزیز برای اینکار بهتر است همزمان از جاوا اسکریپت و PHP استفاده کنید .
با چه قسمتی از ارسال اطلاعات مشکل دارید ؟؟
موفق باشید

امید امرایی
جمعه 04 بهمن 1387, 00:52 صبح
قبل از هر چیز بهتر بود سوال رو در بخش PHP مطرح می کردید .


برای این کار چون من نمیدونم که تعداد سوالات چند تاست مشکل دارم که چطور جواب ها رو ارسال کنم و اینکه چگونه جوابها را برای سوالات متغیر ذخیره کنم . باید چه کار کرد؟

الف : سوالات و جواب ها در جداول متفاوت نگداری میشن :
هر سوال دارای یک کلید یکتاست و هر جواب در جدول جواب ها با استفاده از همون کلید به سوال خودش مرتبط می شه ..



Table Questions(Question_Id, Title);

Table Answers(Answer_Id, Question_Id, Content);


ب : سوالات و جواب در یک جدول نگهداری می شن :
طبیعتا سوال و جواب در یک رکورد مشترک نگهداری مشن و نمی تونه چندان مشکلی وجود داشته باشه.

majidnazarister
جمعه 04 بهمن 1387, 15:19 عصر
در php مطرح شد ولی متاسفانه کسی جواب نمی داد.
من سه تا جدول برای ازمون دارم یکی برای حسابها, یکی برای سوالاتی که مدیر وارد میکنه با تعداد سوالات وهمراه جواب صحیح سوالات و یکی هم برای کاربر که سوالات و گزینه ها رو از جدول مدیر می خونه و پاسخ اون رو از کاربر میگیره و گزینه ی صحیح رو به همراه تمام بخشهای دیگر(سوالات و گزینه ها) در
جدول کاربر ذخیره می کنه.
من سوالات رو تکی واکشی میکنم و نمایش میدم و پیش فرض سوالات گزینه اول است , حالا می خوام برای ترافیک کم کار تمام سوالات رو یکجا نمایش بدم چون من نمیدونم مثلا تعداد سوالی که یک کاربر ازمون اون رو انتخاب کرده چند تاست پس نمیدونم چه طوری باید سوالات هر ازمون رو نگه داری کنم و در جدول اون ذخیره کنم .فکر میکنم صحبتم خیلی واضح است اما کسی جواب واضح نمیده و بیشتر به جزئیات می پردازید اگر میشه کد بنویسید ممنون میشم.!

majidnazarister
شنبه 05 بهمن 1387, 19:42 عصر
اگر می توانید لطفا سریعتر جواب بدهید !!!!
راستی من سوالات رو موقع طراحی فارسی وارد میکنم ولی موقع نمایش ? چاپ میکنه برای نمایش فارسی چه کار باید کرد؟

yoshika
شنبه 05 بهمن 1387, 20:38 عصر
charset=UTF-8
را در به جای charset=iso-8859-1 بگذارید

majidnazarister
چهارشنبه 09 بهمن 1387, 16:37 عصر
من در dreamweaver در قسمت pageproperty زبانش را utf-8 مکنم.در phpmyadmin در قسمت collation هم utf-8می کنم کل بانک را .در مرورگر هم encoding را برابر utf-8می گذارم بازهم فارسی نمیشود.
برای اینکه مرورگر اطلاعات مرا فارسی نمایش دهد چه کار باید کنم؟
یک سوال دیگر اینکه اگر بخوام یک قسمت برای کاربر بزارم(تگ img) و کاربر عکسی رو لود کنه(input type=file) بعد از تایید عکس در دیتا بیس (mysql) ذخیره بشه و دوباره در جای دیگه عکس اونو نمایش بده چه کار باید کرد؟با تشکر اگر کد بنویسید ممنون می شم.

yaqubian
چهارشنبه 09 بهمن 1387, 19:25 عصر
دوست عزیز
ذخیره کردن عکس در DB اصلا کار عاقلانه ای نیست. چون با هر بار فراخونی تصویر باید اطلاعات از بانک خونده بشه!!! و چون اطلاعات عکس باید بصورت باینری در بانک ذخیره بشه حجم DB تون رو بالا می بره!
موفق باشید

majidnazarister
پنج شنبه 10 بهمن 1387, 16:12 عصر
برای امنیت برنامه خیلی مهمه پس یک را حل بنویسید. ضمنا چطور فارسی رو نمایش بده من هنوز با فارسی مشکل دارم یعنی اطلاعات فارسی در بانک رو به صورت ? نمایش میده.
با تشکر.[/quote]

yaqubian
پنج شنبه 10 بهمن 1387, 21:56 عصر
دوست عزیز
تا حالا بصورت چند لایه برنامه نویسی کردین؟
موفق باشید

majidnazarister
جمعه 11 بهمن 1387, 08:17 صبح
نه . من این ترفند را ضروری نیاز دارم پس یا جواب بدین یا بگین بلد نیستم تا کسی دیگه جواب بده(ببخشید).

yaqubian
جمعه 11 بهمن 1387, 20:12 عصر
دوست عزیز
واسه مشکل علامت ? اخیرا من خودم هم با این مشکل برخورد کردم. مشکل از طرف هاست هستش که می تونین با یه تماس مشکل رو برطرف بفرمایید.
تمام راه حل های موجود رو هم تست کردم ولی مشکل از هاست بود.
موفق باشید

majidnazarister
شنبه 12 بهمن 1387, 07:38 صبح
برای عکس چی؟ چطور من یک عکس رو در فرم لود کنم بعد در بانک ذخیره کنم دقیقا مثل ثبت نام ازمونها ی کنکور. لطفا سریعتر جواب بدین چون فوتی نیاش دارم .

yaqubian
یک شنبه 13 بهمن 1387, 08:01 صبح
دوست عزیز
http://www.wellho.net/solutions/php-example-php-form-image-upload-store-in-mysql-database-retreive.html
موفق باشید

majidnazarister
یک شنبه 13 بهمن 1387, 20:19 عصر
<?php
// Connect to database
$errmsg = "";
if (! @mysql_connect("localhost","trainee","abc123")) {
$errmsg = "Cannot connect to database";
}
@mysql_select_db("test");
// First run ONLY - need to create table by uncommenting this
// Or with silent @ we can let it fail every sunsequent time ;-)
$q = < < < CREATE
create table pix(
pid int primary key not null auto_increment,
title text,
imgdata longblob)
CREATE;
@mysql_query($q);
// Insert any new image into database
if ($_REQUEST[completed] == 1) {
// Need to add - check for large upload. Otherwise the code
// will just duplicate old file ;-)
// ALSO - note that latest.img must be public write and in a
// live appliaction should be in another (safe!) directory.
move_uploaded_file($_FILES['imagefile']['tmp_name'],"latest.img");
$instr = fopen("latest.img","rb");
$image = addslashes(fread($instr,filesize("latest.img")));
if (strlen($instr) < 149000) {
mysql_query ("insert into pix (title, imgdata) values (\"".
$_REQUEST[whatsit].
"\", \"".
$image.
"\")");
} else {
$errmsg = "Too large!";
}
}
// Find out about latest image
$gotten = @mysql_query("select * from pix order by pid desc limit 1");
if ($row = @mysql_fetch_assoc($gotten)) {
$title = htmlspecialchars($row[title]);
$bytes = $row[imgdata];
} else {
$errmsg = "There is no image in the database yet";
$title = "no database image available";
// Put up a picture of our training centre
$instr = fopen("../wellimg/ctco.jpg","rb");
$bytes = fread($instr,filesize("../wellimg/ctco.jpg"));
}
// If this is the image request, send out the image
if ($_REQUEST[gim] == 1) {
header("Content-type: image/jpeg");
print $bytes;
exit ();
}
?>
<html><head>
<title>Upload an image to a database</title>
<body bgcolor=white><h2>Here's the latest picture</h2>
<font color=red><?= $errmsg ?></font>
<center><img src= width=144><br>
<b><?= $title ?></center>
<hr>
<h2>Please upload a new picture and title</h2>
<form enctype=multipart/form-data method=post>
<input type=hidden name=MAX_FILE_SIZE value=150000>
<input type=hidden name=completed value=1>
Please choose an image to upload: <input type=file name=imagefile><br>
Please enter the title of that picture: <input name=whatsit><br>
then: <input type=submit></form><br>
<hr>
By Graham Ellis - graham@wellho.net
</body>
</ht
دوست عزیز خط 14 error میده و برنامه نویسی اون برام تازه است. یک ساده ترش رو نداری؟

majidnazarister
چهارشنبه 16 بهمن 1387, 16:29 عصر
من توی برنامم یک عکس می خوام بزارم کسی توی این همه ادم نیست جواب بده.

sama01
چهارشنبه 16 بهمن 1387, 17:34 عصر
ببخشید.
در خصوص نمای ؟ به جای حروف فارسی، شما اطلاعات را چه‌طور وارد کرده‌اید؟ اگر از داخل phpMyAdmin وارده کرده باشید، این اتفاق رخ می‌دهد.

در مورد عکس، چه اصراری دارید که عکس را وارد db کنید؟

ضمنا کدهای php را داخل تگ php قرار دهید تا خواناتر باشد.

majidnazarister
پنج شنبه 17 بهمن 1387, 17:00 عصر
نه, در مرورگر فارسی مینویسم.
درمورد عکس هم خواستم یک کار جدید انجام بدم ولی می بینم کسی کار نکرده .
در مورد سومی کدها خوانا هست ولی اینجا اینطور نشون میده.
جناب مدیر اگر اون فایلی که برای ویرایش امضا است رو برام بزاری کارم راه می افته.

امید امرایی
جمعه 18 بهمن 1387, 02:03 صبح
درمورد عکس هم خواستم یک کار جدید انجام بدم ولی می بینم کسی کار نکرده .


کجای این کار جدیده دوست عزیز .
همونطور که جناب yaqubian عزیز هم فرمودن منطقی نیست .
تنها کاری که انجام می ده اینه که فضای دیتابیس رو بی خودی پر میکنه .

یه جستجو هم می کردید بار ها در همین تالار بحث شده.

majidnazarister
سه شنبه 22 بهمن 1387, 11:57 صبح
شما می توانید فایلی که برای ویرایش امضاء است برایم بگذارید؟

majidnazarister
شنبه 29 فروردین 1388, 10:02 صبح
با سلام
میشه کاری کرد که یک فرم چند تا submit داشته باشه . یعنی فرض کنید که چند دکمه داربم و اگر هر کدام که زده شد به یک ادرس مورد نظر اشاره کند.یا چند تا فرم بذاریم که هر submit مربوط به خودش باشه.
با تشکر

Spring_64
یک شنبه 30 فروردین 1388, 00:12 صبح
سلام
نمیدونم مشکل آزمون شما حل شد یا نه؟
اگر حل شده، لطفا در صورت تمایل کمی راجع به چگونگی انجام کار توضیح بدهید.
با تشکر

majidnazarister
یک شنبه 30 فروردین 1388, 06:54 صبح
با سلام.
در مورد فارسی کردن هنگام ریختن و نمایش دادن درست شد.
در مورد عکس هنگام ریختن مشکل داره ولی نمایش دادن درست کار میکنه(یعنی عکس رو در بانک نمیریزم بلکه فقط نام اونو میزارم ).

Spring_64
دوشنبه 31 فروردین 1388, 01:28 صبح
سلام
برای این کار بهتر است پسوند فایل را در بانک ذخیره کنید وسپس این کد را بنویسید.


$userFile=$_FILES['userFile'];
if($userFile['size']>0)
{
$fileLength=strlen($userFile['name']);
$fileStr=substr($userFile['name'],$fileLength-4);//pasvand file
$result=mysql_query("insert into database Name (field1,...,fileext) values ('$?',...,'$fileStr')");
$recid=mysql_insert_id();
copy($userFile['tmp_name'],"masire pooshe/$recid".$fileStr);
}