php實現題庫隨機出題,php題庫編程題

本文目錄一覽:

PHP考試系統怎麼實現在同一頁面提交後,實現隨機出題,並保證提交後,不再隨機,要求試題和答案保持一致

用sesssion保存答過的題目id

每次選題前,先從session取出已答題目id跟所有題目id做一個差集,array_diff()可以計算數據差集。

新的題目從這個差集里隨機選取。

至於試題和答案對應關係,做好答案和試題id的關聯關係就行。

題庫有600題,我想隨機選其中的100道,這100道不能重複, 演算法

就是將600題放在數組裡,然後調用shuffle這個PHP函數將數組打亂,取前100項就是需要的100題

至於這個打亂的演算法,大致是這樣

for (i=0;i600;++i) {

a=myarray[i];

j=rand(i,600-1);

myarray[i]=myarray[j];

myarray[j]=a;

}

用php+mysql做一個題庫系統,隨機抽取五百題左右生成考試卷,最有效率的做法是什麼?

php裡面有array_rand函數,你要是一道題一道題的讀出來,或許也可以嘗試一下。但是要是一下子都讀出來,即便這個函數效率可以的話,隨機取出id數組,查詢 「where id in 數組」 就不如直接在資料庫里隨機抽取記錄。

如何從數據表裡隨機抽取記錄呢,想想辦法還是有一些,就是不知道效率如何。有的是說用max_id*rand(),那一條一條抽取還是可以的。怎麼批量隨機抽取呢,可以試著排序,然後選取前500題,排序可以想辦法用一些函數(選取一些執行效率高的),如何md5,sha1,這種。如果為了使結果更具有隨機性,可以把欄位值再與一個隨機數運算一下。僅供參考。

========================

我想你還是用array_rand隨機抽500個id存到數組,然後遍曆數組吧。這樣也避免了題目重複。在資料庫里如果一次一條記錄隨機抽取,要考慮碰巧重複的問題。批量選取你就按上面我說的試試。

PHP考試系統怎麼實現隨機出卷,並且提交是同一頁面,提交後給出題目與對應答案的對錯情況。主要是怎麼在

並發訪問量不大的話,在生成題目的同時,生成答案,將生成的答案直接寫入$_SESSION。

並發訪問量大的話,給每條題目一個ID,提交時,同時提交ID和答案,根據ID到資料庫中逐條比對。

如果只是練習的話,安全性要求不高,直接將js加密,再將答案加密,直接發送到客戶端Cookie,將考試結果再加密,返回伺服器。這種性能最好。

PHP 考試系統怎麼生成隨機試題,求代碼寫法.以選擇題為例說明一下就行,假如從10個裡抽3個,怎麼在提交之

很簡單,給你一個思路

你在資料庫裡面放10個題,

id questions options right_answer

1 china 是指哪個國家? A:中國;B:日本;C:美國 A

… ……………. …………. …

這樣你從資料庫中讀取全部數據出來;

為了實現隨機性,你可以用一個數組

?php

$query=$mysql_query(“select * from ‘表名'”);

$results=$mysql_fetch_row($query);

$rand=array_rand($results,3);//取出隨機的三個問題,注意這裡取得是三個鍵值

$question=array($result[$rand[0]],$result[$rand[1]],$result[$rand[2]]);//將取出的三個問題放進一個數組中

?

form action=”目標地址(此處用本頁面地址)” method=”post”

?php

foreach($question as $values)

{

$options=explode(“;”,$values[‘options’]);//用「;」將選項分割存進數組

echo $values[‘questions’];//顯示題目

for($i=0;$icount($options);$i++){

echo “input type=’radio’ name=”.$choice[$valest[‘id’]].” value=’A’ “.$options[i].” /br”;//輸出選項

}

echo “—————————————-“;//題目之間分隔符

}

//下面的代碼是你接受form表單的頁面,如果是本頁面就直接接著上面的代碼寫

if(!empty($_POST[$choice]))

{

foreach($_POST[$choice] as $key= $data)

{

$question_id=$key;

$user_choice=$data;

if(mysql_query(“select * from ‘表名’ where id=”.$key.”and right_answer='”.$data.”‘”))

{

//答案對如何處理。。。。

}

else

{

//答案不對處理辦法。。。。

}

}

}

?

/form

隨手現寫的代碼,可能你裡面有錯誤,但是思路你可以借鑒下~

用PHP做一個答題系統。求救啊~~~~

設置HTML頁面,post取值並與正確答案對比,正確的就執行分數加1,這樣就可以得到總分了

原創文章,作者:IKAA,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/141910.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
IKAA的頭像IKAA
上一篇 2024-10-09 09:53
下一篇 2024-10-09 09:53

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • Python第一章題庫

    本篇文章將從以下幾個方面對Python第一章題庫進行詳細的闡述,包括基本語法、數據類型、控制語句、函數和模塊等方面。 一、基本語法 Python是一門簡單易學、功能強大的編程語言,…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • PHP獲取301跳轉後的地址

    本文將為大家介紹如何使用PHP獲取301跳轉後的地址。301重定向是什麼呢?當我們訪問一個網頁A,但是它已經被遷移到了另一個地址B,此時若伺服器端做了301重定向,那麼你的瀏覽器在…

    編程 2025-04-27
  • PHP登錄頁面代碼實現

    本文將從多個方面詳細闡述如何使用PHP編寫一個簡單的登錄頁面。 1. PHP登錄頁面基本架構 在PHP登錄頁面中,需要包含HTML表單,用戶在表單中輸入賬號密碼等信息,提交表單後服…

    編程 2025-04-27
  • 計算機二級基礎知識題庫

    計算機二級基礎知識題庫考試為計算機二級考試的必修科目之一,其中包含了計算機的基本知識以及應用能力等內容。本文將從題庫概述、考試內容、備考建議以及編程實例等幾個方面進行介紹,希望對廣…

    編程 2025-04-27
  • PHP與Python的比較

    本文將會對PHP與Python進行比較和對比分析,包括語法特性、優缺點等方面。幫助讀者更好地理解和使用這兩種語言。 一、語法特性 PHP語法特性: <?php // 簡單的P…

    編程 2025-04-27
  • Python程序設計題庫博客園

    Python程序設計題庫博客園是一個開發者可以通過該平台進行學習和檢測自身能力的編程題目練習平台。其提供了一些Python的基礎編程技能練習,對於想要學習Python編程,提高編程…

    編程 2025-04-27
  • 計算機基礎統考題庫

    計算機基礎統考題庫是計算機類專業計算機基礎課程教育的一個重要組成部分,也是考生備戰計算機基礎課程教育統考的重要學習工具。下面從多個方面對計算機基礎統考題庫做詳細的闡述。 一、題庫概…

    編程 2025-04-25

發表回復

登錄後才能評論