2013-12-09 6 views
0

Привет, ребята Мне было интересно, можете ли вы помочь мне с увеличением в моем цикле while. Я программирование онлайн викторин с помощью PHP и хочет количество qustion обновлять каждый раз, когда они выбирают кнопку отправки, но переменный $ questionNumber только остается на одинИнкремент В цикле php while

Моего код показан ниже

<?php session_start(); ?> 
<html> 
<head> 
<title> World Cup Quiz </title> 
</head> 
<body> 
<div align = center><strong> World Cup Quiz</strong></div> 
<br /> 

<div align =center> 
<?php 



include ("dbConnect.php"); 

$_SESSION['number']=1; 
$questionNumber = $_SESSION['number']; 
$userScore=0; 
$number= rand(1,4); 

//search database for generated number and match ID 
$dbQuery= "SELECT * FROM `questions 1.0` WHERE `ID` =$number"; 
$dbResult=mysql_query($dbQuery); 

echo "Question:".$questionNumber."/5<br>"; 

//Assign variables to each attribute 

while ($dbRow=mysql_fetch_array($dbResult)) 

{ 


    $theID=$dbRow["ID"]; 
    $theQuestion=$dbRow["Question"]; 
    $theAnswer1=$dbRow["Correct Answer"]; 
    $theAnswer2=$dbRow["Wrong Answer 1"]; 
    $theAnswer3=$dbRow["Wrong Answer 2"]; 
    $theAnswer4=$dbRow["Wrong Answer 3"]; 
    $_SESSION['number']=$questionNumber+1; 
} 




    //Print Questions and Answers 


    echo '<strong>'."$theQuestion".'</strong><br>'; 
    ?> <form name="correctAnswer" form method="post" action="quiz.php"> 
    <?php 
    echo "$theAnswer1";?> <input type="radio" name="correctAnswer"> 
    <?php 
    echo "<br>$theAnswer2"; ?> <input type="radio" name="wrongAnswer1"> 
    <?php 
    echo "<br>$theAnswer3"; ?> <input type="radio" name="wrongAnswer2"> 
    <?php 
    echo "<br>$theAnswer4"; ?> <input type="radio" name="wrongAnswer3"> 
    <br><input type="submit" value="Submit Answer"> 
    </form> 


</div> 
</body> 

</html> 

Надеется, что вы можете помочь

Благодаря

ответ

5

Вы сброс номера в начале вашего скрипта:

$_SESSION['number']=1; 

Вам нужно изменить что-то вроде:

if (!isset($_SESSION['number'])) 
{ 
    $_SESSION['number']=1; 
} 
+0

Works блестяще есть способ, чтобы остановить цикл, если инкрементация попадет определенное число, как 6? – shd0w

+0

@ shd0w Проверьте 'break': http://php.net/manual/en/control-structures.break.php – jeroen

0

Вы можете изменить эту часть кода к следующему.

вместо: `

$_SESSION['number']=1; 
$questionNumber = $_SESSION['number']; 
$userScore=0; 
$number= rand(1,4); 

пишут это: -

$number= rand(1,4); 
    $questionNumber = 0; 
    if(isset($_SESSION['number'])) 
    { 
     $_SESSION['number'] = $_SESSION['number'] + 1; 
     $questionNumber = $_SESSION['number']; 
    }else{ 
    $_SESSION['number'] = 1; 
} 

Я думаю, что проблема вы назначаете сессию равным 1 перед проверкой, если она уже установлена ​​и действует сессия.

Надежда, что добавляет некоторые

Смежные вопросы