Разбъркване на редовете

krissko0o

Registered
Правя един сайт в който ще има тестове, та въпроса ми е как да направя така че сами отговори да се разбъркват ?
PHP:
<?php 
	$select = mysql_query("SELECT * FROM  $dbname.vupros ORDER BY id")or die(mysql_error()); 
$num = mysql_num_rows($select);

    echo "$number "; 
for ($i=0;$i<$num;$i++) { 
$id = mysql_result($select, $i, "id");
$name = mysql_result($select, $i, "vupros"); 
$veren = mysql_result($select, $i, "veren"); 
$otg1 = mysql_result($select, $i, "otg1"); 
$otg2 = mysql_result($select, $i, "otg2"); 
$otg3 = mysql_result($select, $i, "otg3"); 
$otg4 = mysql_result($select, $i, "otg4"); 
$otg5 = mysql_result($select, $i, "otg5"); 
$otg6 = mysql_result($select, $i, "otg6"); 
$otg7 = mysql_result($select, $i, "otg7"); 
echo '<table>'; 
echo '<tr><td>'.$id.':<b>'.$name.'</b></td></tr>';
echo '
<tr><td><input type="radio" name="a1" value="'.$veren.'" />: '.$veren.'</td></tr> 
<tr><td><input type="radio" name="a1" value="'.$otg1.'" />: '.$otg1.'</td></tr> 
<tr><td><input type="radio" name="a1" value="'.$otg2.'" />: '.$otg2.'</td></tr>'; 
if(!empty($otg3)) { echo '<tr><td><input type="radio" name="a1" value="'.$otg3.'" />: '.$otg3.'</td></tr>'; } 
if(!empty($otg4)) { echo '<tr><td><input type="radio" name="a1" value="'.$otg4.'" />: '.$otg4.'</td></tr>'; }
if(!empty($otg5)) { echo '<tr><td><input type="radio" name="a1" value="'.$otg5.'" />: '.$otg5.'</td></tr>';}
if(!empty($otg6)) { echo '<tr><td><input type="radio" name="a1" value="'.$otg6.'" />: '.$otg6.'</td></tr>'; }
if(!empty($otg7)) { echo '<tr><td><input type="radio" name="a1" value="'.$otg7.'" />: '.$otg7.'</td></tr>'; }
echo '<br /><hr></table>'; 
}
	?>
 
Fakeheal каза:
Каква е структурата на таблицата ти?
[sql]CREATE TABLE IF NOT EXISTS `vupros` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`vupros` varchar(255) NOT NULL,
`veren` varchar(255) NOT NULL,
`otg1` varchar(255) NOT NULL,
`otg2` varchar(255) NOT NULL,
`otg3` varchar(255) NOT NULL,
`otg4` varchar(255) NOT NULL,
`otg5` varchar(255) NOT NULL,
`otg6` varchar(255) NOT NULL,
`otg7` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=6 ;[/sql]
общо взето искам да разбъркам редовете от veren до otg7
 
Вкарваш ги отговорите в масив и след това ползваш този код:

PHP:
$answers = ['ans1', 'ans2', 'ans3', 'ans4', 'ans5', 'ans6'];
$numbers = range(0, 6);
shuffle($numbers);
echo "<table border='1'><tr><td>Answers</td></tr>";
foreach ($numbers as $number) {
    if (array_key_exists($number, $answers)) {
        echo "<tr><td>$answers[$number]</td></tr>";
    }
}
echo "</table>";
 
SVTerziev каза:
Вкарваш ги отговорите в масив и след това ползваш този код:

PHP:
$answers = ['ans1', 'ans2', 'ans3', 'ans4', 'ans5', 'ans6'];
$numbers = range(0, 6);
shuffle($numbers);
echo "<table border='1'><tr><td>Answers</td></tr>";
foreach ($numbers as $number) {
    if (array_key_exists($number, $answers)) {
        echo "<tr><td>$answers[$number]</td></tr>";
    }
}
echo "</table>";
Как да ги вкарам в масив ? съжалявам за нелепия въпрос просто от доста време не съм се занимавал с php и половината неща съм ги позабравил :D
 
С кода, който си дал ще се получи следното
PHP:
$answers = [$otg1, $otg2, $otg3, $otg4, $otg5, $otg6, $otg7];
$numbers = range(0, 6);
shuffle($numbers);
echo '<table>'; 
echo '<tr><td>'.$id.':<b>'.$name.'</b></td></tr>';
echo '<tr><td><input type="radio" name="a1" value="'.$veren.'" />: '.$veren.'</td></tr>';
foreach ($numbers as $number) {
    if (array_key_exists($number, $answers)) {
        if (!empty($answers[$number])) {
            echo "<tr><td><input type='radio' name='a1' value='$answers[$number]' />: $answers[$number]</td></tr> ";
	}
    }
}
echo "</table>";
 
SVTerziev каза:
С кода, който си дал ще се получи следното
PHP:
$answers = [$otg1, $otg2, $otg3, $otg4, $otg5, $otg6, $otg7];
$numbers = range(0, 6);
shuffle($numbers);
echo '<table>'; 
echo '<tr><td>'.$id.':<b>'.$name.'</b></td></tr>';
echo '<tr><td><input type="radio" name="a1" value="'.$veren.'" />: '.$veren.'</td></tr>';
foreach ($numbers as $number) {
    if (array_key_exists($number, $answers)) {
        if (!empty($answers[$number])) {
            echo "<tr><td><input type='radio' name='a1' value='$answers[$number]' />: $answers[$number]</td></tr> ";
	}
    }
}
echo "</table>";
Код:
Parse error: syntax error, unexpected '[' in /home/a2338217/public_html/index.php on line 29
 
А какво има на 29 ред?
Ако е масива с отговорите е възможно да е от версията на php, този синтаксис се поддържа от 5.4.0 <=.
Пробвай така
PHP:
$answers = array($otg1, $otg2, $otg3, $otg4, $otg5, $otg6, $otg7);
 
SVTerziev каза:
А какво има на 29 ред?
Ако е масива с отговорите е възможно да е от версията на php, този синтаксис се поддържа от 5.4.0 <=.
Пробвай така
PHP:
$answers = array($otg1, $otg2, $otg3, $otg4, $otg5, $otg6, $otg7);
Благодаря, стана :)
 

Back
Горе