الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

اسئلة متعددة الاختيارات

بدأه nasyia في 8 فبراير 2016 · 4 رد · 1,491 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته 

ممكن المساعدة فى برنامج اسئلة متعددة الاختيارات باستخدام PHP & MYSQLI  قمت بكتابة كود لجلب الاسئلة و عرضعها لكن المشكلة التى واجهتنى هى جلب الاجابة الصحيحة من قاعدة البيانات ومقارنتها باجابتك التى قمت باختيارها واعطاء درجة على كل سؤال وهل يمكن عمل كل ذلك فى صفحة واحدة وباستخدام زر SUBMIT واحد افيدونى بارك الله فيكم 

هل هذا الكود صحيح لجلب السؤال من قاعدة البيانات

 

mysqli_query("select trueAnswer from questions")
mysqli_fetch_assoc

,وهذا الكود الخاص بجلب الاسئلة من قاعدة البيانات وعرضها 

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="utf-8">

		
		<link rel="stylesheet" type="text/css" href="Quiz.css" /> 
	</head>

	<body>
		<form method="POST" action="Quiz.php">
		<?php require "connection.php" ; ?>
		<?php 
		/*
		 * total of questions 
		 */
		$sql = mysqli_query($link,"SELECT * FROM `questions`")or die (mysqli_error.__LINE__);
		$row = mysqli_num_rows($sql); 
		?>
		<div>
			<header>
				<h1><center>PHP Quizzer</center></h1>
			</header>
			<nav>
				<p>
					<h3>Total Of Questions Is <?php echo "$row"; ?> </h3>
				</p>
				
			</nav>

<?php
function getQuestions()
{
    require("connection.php");
    $questions = array();
    $query = mysqli_query($link,"SELECT * FROM `questions` order by id  ") or dir(mysqli_error());
    if (mysqli_num_rows($query) > 0) {
    while ($fetch = mysqli_fetch_assoc($query)) {
        $questions['questions'] = $fetch;
        if (!empty($questions)) {
        echo "<table width='100%'>";
        foreach ($questions as $qstn)
            echo "<hr size='2%'>"; {
            echo "<tr><td>" . $qstn["questions"] . "</td></tr>";
            echo "<tr><td><input type='radio'  name='ans1' >" . $qstn["answer1"] . "</td></tr>";
            echo "<tr><td><input type='radio' name='ans2' >" . $qstn["answer2"] . "</td></tr>";
            echo "<tr><td><input type='radio' name='ans3' >" . $qstn["answer3"] . "</td></tr>";
			echo "<tr><td><input type='radio' name='ans3' >" . $qstn["answer4"] . "</td></tr>";
             echo "<input type='submit' name='submit'/>";
        }
        echo "</table>";
        }
       
    }
	
    }
    return $questions;
}

getQuestions();
?>



			
		   </form>                               
                            
			</div>

		
		</div>
	</body>
</html>
#2

يجي إضافة حقل للجدول للتعريف بالجواب الصحيح

 

--
-- Table structure for table `skills_question`
--

CREATE TABLE IF NOT EXISTS `skills_question` (
  `idq` int(5) NOT NULL AUTO_INCREMENT,
  `question` longtext COLLATE utf8_unicode_ci NOT NULL,
  `catquestion` tinyint(2) NOT NULL COMMENT 'quoran, anbiyae,...',
  `correct_answer` varchar(10) COLLATE utf8_unicode_ci NOT NULL COMMENT 'id de la bonne reponse',
  `answer1` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
  `answer2` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
  `answer3` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
  `answer4` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
  `source` longtext COLLATE utf8_unicode_ci NOT NULL,
  `idpseudo` int(5) NOT NULL,
  `on_off` enum('0','1') COLLATE utf8_unicode_ci NOT NULL DEFAULT '1' COMMENT '0: off, 1: on',
  `total_correct` int(5) NOT NULL COMMENT 'number of people who answered correct',
  `total_wrong` int(5) NOT NULL COMMENT 'number of people who answered wrong',
  `when` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
  `ip` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
  PRIMARY KEY (`idq`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=82 ;

--
-- Dumping data for table `skills_question`
--

INSERT INTO `skills_question` (`idq`, `question`, `catquestion`, `correct_answer`, `answer1`, `answer2`, `answer3`, `answer4`, `source`, `idpseudo`, `on_off`, `total_correct`, `total_wrong`, `when`, `ip`) VALUES
(1, 'من هو النبي الذي ألقاه قومه في النار', 3, 'answer2', 'عيسى عليه السلام', 'إبراهيم عليه السلام', 'موسى عليه السلام', 'نوح عليه السلام', 'قال الحق عز وجل: { قَالُوا حَرِّقُوهُ وَانصُرُوا آلِهَتَكُمْ إِن كُنتُمْ فَاعِلِينَ (68)  قُلْنَا يَا نَارُ كُونِي بَرْدًا وَسَلامًا عَلَى إِبْرَاهِيمَ (69) {. سورة الأنبياء

 

هنا الجواب الصحيح هو رقم ٢

#3
CREATE TABLE IF NOT EXISTS `questions` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `questions` text NOT NULL,
  `answer1` text NOT NULL,
  `answer2` text NOT NULL,
  `answer3` text NOT NULL,
  `answer4` text NOT NULL,
  `True_answer` text NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;

اخى هذه قاعدة البيانات التى قمت بانشاها حيت تحتوى على 4 حقول للاجابات وحقل للاجابة الصحيحة  لكن المشكلة هى كيفية مقارنة اجابتك بالاجابة الصحيحة المخزن فى القاعدة وهذه صورة ارجوا ان توضح لك اكثر ومشكور اخى الكريم 

 

2016-02-10 (1).png

تم تعديل هذه المشاركة بواسطة nasyia في 10 فبراير 2016 في 11:27

#4
$answer = $_POST['answer'];
$idq = $_POST['idq'];

//echo $answer.'<br />';
//echo $idq.'<br />';

$sqla = 'SELECT correct_answer FROM skills_question WHERE correct_answer = "'.$answer.'" AND idq = "'.$idq.'" LIMIT 1';
#5
Abu Rayane كتب:

INSERT INTO `skills_question` (`idq`, `question`, `catquestion`, `correct_answer`, `answer1`, `answer2`, `answer3`, `answer4`, `source`, `idpseudo`, `on_off`, `total_correct`, `total_wrong`, `when`, `ip`) VALUES (1, 'من هو النبي الذي ألقاه قومه في النار', 3, 'answer2', 'عيسى عليه السلام', 'إبراهيم عليه السلام', 'موسى عليه السلام', 'نوح عليه السلام', 'قال الحق عز وجل: { قَالُوا حَرِّقُوهُ وَانصُرُوا آلِهَتَكُمْ إِن كُنتُمْ فَاعِلِينَ (68) قُلْنَا يَا نَارُ كُونِي بَرْدًا وَسَلامًا عَلَى إِبْرَاهِيمَ (69) {. سورة الأنبياء

السلام عليكم

مشكور اخى الكريم على الاجابة لكنى ارجو منك بعض التوضيحات اذا امكنك 

$answer تمثل الجواب الذى قمت انت باختياره من الاجوبة المتعددة

$qid يمثل رقم السؤال الذي قمت انت باختياره وعند عمل جملة query يتم المقارنة بين رقم السؤال فى المتصفح ورقم السؤال فى قاعدة البيانات وكذلك للجواب 

لكن هذه الطريقة لم تشتغل معى للاسف 

مواضيع مشابهة