Πώς να πάρω random αποτέλεσμα από την βάση

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
Akis_gr49
Δημοσιεύσεις: 266
Εγγραφή: 07 Ιουν 2007 13:49

Πώς να πάρω random αποτέλεσμα από την βάση

Δημοσίευση από Akis_gr49 » 29 Νοέμ 2007 22:32

Παιδιά καλησπέρα. Θα ήθελα την βοήθειά σας. Έχω το εξής σκριπτάκι:

Κώδικας: Επιλογή όλων

<?php	include &#40;"connect2db.php"&#41;; //Syndesi me tin vasi dedomenwn

$erwtiseis = 3; //

$display = mysql_query&#40;"SELECT * FROM $table ORDER BY RAND&#40;&#41; LIMIT $erwtiseis"&#41;;
	
if &#40;!isset &#40;$_POST&#91;'submit'&#93;&#41;&#41; &#123;

	echo "<div align=center>";
	echo "<form method=post action=$PHP_SELF>";
	echo "<table border=0>";

	while &#40;$row = mysql_fetch_array&#40;$display&#41;&#41; &#123;

	$id = $row&#91;"id"&#93;;
	$question = $row&#91;"question"&#93;;
	$opt1 = $row&#91;"opt1"&#93;;
	$opt2 = $row&#91;"opt2"&#93;;
	$opt3 = $row&#91;"opt3"&#93;;
	$answer = $row&#91;"answer"&#93;;
	
	echo "<tr><td colspan=3><br><b>$question</b></td></tr>";
	echo "<tr>
			<td>$opt1<input type=radio name=q$id value=\"$opt1\"></td>
			<td>$opt2<input type=radio name=q$id value=\"$opt2\"></td>
			<td>$opt3<input type=radio name=q$id value=\"$opt3\"></td>
		</tr>";
	&#125;

	echo "</table>";
	echo "<br><br>";
	echo "<input type='submit' value='Des ta apotelesmata' name='submit'>";
	echo "</form>";
	echo "</div>";

&#125;
?>
Γίνεται τα αποτελέσματα που παίρνω από την βάση να είναι random?

π.χ.

Έχω την ερώτηση:

Πόσες μέρες έχει ο χρόνος;

α)362
β)365
γ)355

Γίνεται αυτές οι τιμές κάθε φορά να φαίνονται στον χρήστη ανακατεμένες με random;
π.χ.

α)365
β)355
γ)362

α)365
β)362
γ)355

κτλ.

Περιμένω τις απαντήσεις σας.

Ευχαριστώ πολύ!!

Άβαταρ μέλους
dik_
Δημοσιεύσεις: 476
Εγγραφή: 07 Ιουν 2007 11:28

Πώς να πάρω random αποτέλεσμα από την βάση

Δημοσίευση από dik_ » 30 Νοέμ 2007 00:07

Κώδικας: Επιλογή όλων

$qs&#91;&#93; = $row&#91;"opt1"&#93;;
$qs&#91;&#93; = $row&#91;"opt2"&#93;;
$qs&#91;&#93; = $row&#91;"opt3"&#93;;

shuffle&#40;$qs&#41;;
foreach &#40;$qs as $q&#41; &#123;
    echo "<td>&#123;$q&#125;<input type=\"radio\" name=\"q&#123;$q&#125;\" value=\"&#123;$q&#125;\"></td>";
&#125;

Akis_gr49
Δημοσιεύσεις: 266
Εγγραφή: 07 Ιουν 2007 13:49

Πώς να πάρω random αποτέλεσμα από την βάση

Δημοσίευση από Akis_gr49 » 30 Νοέμ 2007 00:43

Ναι τι είναι αυτό;

Εγώ θέλω να παίρνει τις τιμές τυχαία από την βάση. Δεν έγραψες πουθενά την rand..

Άβαταρ μέλους
FUBAR
Δημοσιεύσεις: 255
Εγγραφή: 12 Οκτ 2007 15:03
Τοποθεσία: 41°7' 16°51' (Earth)

Πώς να πάρω random αποτέλεσμα από την βάση

Δημοσίευση από FUBAR » 30 Νοέμ 2007 00:58

Σου βάλε την shuffle όμως. Δοκίμασε το.

Akis_gr49
Δημοσιεύσεις: 266
Εγγραφή: 07 Ιουν 2007 13:49

Πώς να πάρω random αποτέλεσμα από την βάση

Δημοσίευση από Akis_gr49 » 30 Νοέμ 2007 15:37

Το έκανα. Δείχνει να δουλεύει μια χαρά, να αλλάζουν random οι επιλοηές. Αλλά υπάρχει πρόβλημα!! ανα ερώτηση αυξάνει τις απαντήσεις ανα 3.

Δλδ.

1) 1η Ερώτηση
α)362 β)365 γ)355

2) 2η Ερώτηση
α)362 β)365 γ)355 δ)362 ε)365 ζ)355

3) 3η Ερώτηση
α)362 β)365 γ)355 δ)362 ε)365 ζ)355 η)362 θ)365 ι)355

κτλ.

Τι λέτε να φταίει??

Κώδικας: Επιλογή όλων

<?php	include &#40;"connect2db.php"&#41;; //Syndesi me tin vasi dedomenwn

$erwtiseis = 8; //

//$display = mysql_query&#40;"SELECT * FROM $table ORDER BY RAND&#40;&#41; LIMIT $erwtiseis"&#41;;   //me random

$display = mysql_query&#40;"SELECT * FROM $table ORDER BY id LIMIT $erwtiseis"&#41;;        //xwris random
	
if &#40;!isset &#40;$_POST&#91;'submit'&#93;&#41;&#41; &#123;

	echo "<div align=center>";
	echo "<form method=post action=$PHP_SELF>";
	echo "<table border=0>";

	while &#40;$row = mysql_fetch_array&#40;$display&#41;&#41; &#123;

	$id = $row&#91;"id"&#93;;
	$question = $row&#91;"question"&#93;;
	//$opt1 = $row&#91;"opt1"&#93;;
	//$opt2 = $row&#91;"opt2"&#93;;
	//$opt3 = $row&#91;"opt3"&#93;;
	$answer = $row&#91;"answer"&#93;;
	
	
$qs&#91;&#93; = $row&#91;"opt1"&#93;;
$qs&#91;&#93; = $row&#91;"opt2"&#93;;
$qs&#91;&#93; = $row&#91;"opt3"&#93;;


	echo "<tr><td colspan=3><br><b>$question</b></td></tr>";
	echo "<tr>";

shuffle&#40;$qs&#41;;
foreach &#40;$qs as $q&#41; &#123;
    echo "<td>&#123;$q&#125;<input type=\"radio\" name=\"q&#123;$q&#125;\" value=\"&#123;$q&#125;\"></td>";
	
&#125; 
	
echo "</tr>";

&#125;
	echo "</table>";
	echo "<br><br>";
	echo "<input type='submit' value='Des ta apotelesmata' name='submit'>";
	echo "</form>";
	echo "</div>";

&#125;elseif &#40;isset &#40;$_POST&#91;'submit'&#93;&#41;&#41;&#123;

echo "paiktara mou";
&#125;
?>

Άβαταρ μέλους
Alice_Cooper
Δημοσιεύσεις: 1947
Εγγραφή: 11 Μάιος 2007 00:33
Τοποθεσία: Ioannina
Επικοινωνία:

Πώς να πάρω random αποτέλεσμα από την βάση

Δημοσίευση από Alice_Cooper » 01 Δεκ 2007 02:04

xmmm dokimase kati tetoio

Κώδικας: Επιλογή όλων

....
$qs&#91;0&#93; = $row&#91;"opt1"&#93;;
$qs&#91;1&#93; = $row&#91;"opt2"&#93;;
$qs&#91;2&#93; = $row&#91;"opt3"&#93;;
...
alla malon tha htan edelos typika ftigmeno afto pou thes...
mou fenetai oti den thes akrivos afto pou vgazeis ekei ....
periergo mou fenetai ....

Akis_gr49
Δημοσιεύσεις: 266
Εγγραφή: 07 Ιουν 2007 13:49

Πώς να πάρω random αποτέλεσμα από την βάση

Δημοσίευση από Akis_gr49 » 01 Δεκ 2007 03:28

Έστρωσε...Τέλεια.

Θα μου εξηγήσει όμως κανείς αυτό το κομμάτι? Γιατι δεν κατάλαβα ακριβώς τι κάναμε.. Την shuffle πρώτη φορά την βλέπω...

Ευχαριστώ παιδιά!

Akis_gr49
Δημοσιεύσεις: 266
Εγγραφή: 07 Ιουν 2007 13:49

Πώς να πάρω random αποτέλεσμα από την βάση

Δημοσίευση από Akis_gr49 » 09 Δεκ 2007 02:15

Κώδικας: Επιλογή όλων

<?php 
	include&#40;"menu.php"&#41;; //To menu 
?>
<?php	include &#40;"connect2db.php"&#41;; //Syndesi me tin vasi dedomenwn

$erwtiseis = 3; //

//$display = mysql_query&#40;"SELECT * FROM $table ORDER BY RAND&#40;&#41; LIMIT $erwtiseis"&#41;;   //me random

$display = mysql_query&#40;"SELECT * FROM $table ORDER BY id LIMIT $erwtiseis"&#41;;        //xwris random
	
if &#40;!isset &#40;$_POST&#91;'submit'&#93;&#41;&#41; &#123;

	echo "<div align=center>";
	echo "<form method=post action=exams.php>";
	echo "<table border=0>";

	while &#40;$row = mysql_fetch_array&#40;$display&#41;&#41; &#123;

	$id = $row&#91;"id"&#93;;
	$question = $row&#91;"question"&#93;;
	$opt1 = $row&#91;"opt1"&#93;;
	$opt2 = $row&#91;"opt2"&#93;;
	$opt3 = $row&#91;"opt3"&#93;;
	$answer = $row&#91;"answer"&#93;;

//random	
//$qs&#91;0&#93; = $row&#91;"opt1"&#93;;
//$qs&#91;1&#93; = $row&#91;"opt2"&#93;;
//$qs&#91;2&#93; = $row&#91;"opt3"&#93;;
//end random

	echo "<tr><td colspan=3><br><b>$question</b></td></tr>";
	echo "<tr>";

echo "<td>$opt1<input type=radio name=q$id value=\"$opt1\"></td>
	  <td>$opt2<input type=radio name=q$id value=\"$opt2\"></td>
	  <td>$opt3<input type=radio name=q$id value=\"$opt3\"></td>";


//random
//shuffle&#40;$qs&#41;;
//foreach &#40;$qs as $q&#41; &#123;
  //  echo "<td>&#123;$q&#125;<input type=\"radio\" name=\"q&#123;$q&#125;\" value=\"&#123;$q&#125;\"></td>";	
//&#125; 
//end random
	
echo "</tr>";

&#125; //end while
	echo "</table>";
	echo "<br><br>";
	echo "<input type='submit' value='Des ta apotelesmata' name='submit'>";
	echo "</form>";
	echo "</div>";

&#125;elseif &#40;isset &#40;$_POST&#91;'submit'&#93;&#41;&#41;&#123;

//echo "paiktara mou";

	$score = 0;
	$total = mysql_num_rows&#40;$display&#41;;
		while &#40;$result = mysql_fetch_array&#40;$display&#41;&#41;&#123;
			$answer = $result&#91;"answer"&#93;;
			//echo $answer; 1-1aek34boltonitaly
			$q = $result&#91;"q"&#93;;
			
		if &#40;$q == $answer&#41;&#123;
		$score++; 
		&#125;//end if
	
		&#125;//end while
	
	echo "<p align=center><b>Το σκορ σας είναι $score στα $total</b></p>";
	echo "<p>";
	
	if   &#40;$score == $total&#41; &#123;
	echo "Συχγχαρητήρια! Απαντήσατε σωστά όλες τις ερωτήσεις!";
	&#125;
	elseif &#40;$score/$total < 0.34&#41; &#123;
	echo "Oh Αγαπητέ. Δεν είναι και το καλύτερο σκορ, αλλά είναι μόνο μια εξέταση, δεν πειράζει.";
	&#125;
	elseif &#40;$score/$total > 0.67&#41; &#123;
	echo "Πολύ καλά.";
	&#125;
	else &#123;
	echo "Δεν είναι κακό το αποτέλεσμα!";
	&#125;

echo "</p>";

echo "<p>Here are the answers&#58;";

echo "<table border=0>";
$display = mysql_query&#40;"SELECT * FROM $table ORDER BY id"&#41;;
while &#40;$row = mysql_fetch_array&#40;$display&#41;&#41; &#123;

$question = $row&#91;"question"&#93;;
$answer = $row&#91;"answer"&#93;;
$q = $row&#91;"q"&#93;;
echo $q . "s";

echo "<tr><td><br>$question</td></tr>";

if &#40;$q == $answer&#41; 
		&#123;
		echo "<tr><td>&raquo;you answered $q, which is correct</td></tr>";
		&#125;
elseif &#40;$q == ""&#41; &#123;
echo "<tr><td>&raquo;you didn't select an answer. The answer is $answer</td></tr>";
&#125;
else &#123;
echo "<tr><td>&raquo;you answered $q. The answer is $answer</td></tr>";
&#125;
&#125;

echo "</table></p>";

&#125; //end else &#40;isset &#40;$_POST&#91;'submit'&#93;&#41;&#41;&#123;
?>
Παιδιά έχω κολλήσει. Σε αυτό το σκριπτάκι έχουμε κάποιες ερωτήσεις.

Ότι και να απαντήσει ο χρήστης βγάζει 0. Τι κάνω λάθος στον κώδικα?

Το σκορ σας είναι 0 στα 3

Help me pls.


Ευχαριστώ πολύ!

Άβαταρ μέλους
Alice_Cooper
Δημοσιεύσεις: 1947
Εγγραφή: 11 Μάιος 2007 00:33
Τοποθεσία: Ioannina
Επικοινωνία:

Πώς να πάρω random αποτέλεσμα από την βάση

Δημοσίευση από Alice_Cooper » 09 Δεκ 2007 02:55

xmmm midenizeis monimos to score gi'afto.....
to:

Κώδικας: Επιλογή όλων

$score=0;
koita pou tha to valeis ... na elegxeis an thelei midenisma ... na mhn midenizei kathe fora...

Akis_gr49
Δημοσιεύσεις: 266
Εγγραφή: 07 Ιουν 2007 13:49

Πώς να πάρω random αποτέλεσμα από την βάση

Δημοσίευση από Akis_gr49 » 09 Δεκ 2007 03:17

Alice ευχαριστώ για την απάντησή σου..

Έκανα διάφορες παραλλαγές αλλά δεν παίζει πάλι..

Αν το βάλω αλλού λέει "κενο" στα 3

και έτσι όπως είναι τώρα πάνω βγάζει
0 στα 3

Που θα μπορούσε να μπει ;

Άβαταρ μέλους
Alice_Cooper
Δημοσιεύσεις: 1947
Εγγραφή: 11 Μάιος 2007 00:33
Τοποθεσία: Ioannina
Επικοινωνία:

Πώς να πάρω random αποτέλεσμα από την βάση

Δημοσίευση από Alice_Cooper » 09 Δεκ 2007 03:26

xmmm malon den krataei katholou timh ... sose se session afth
thn metrish .....

kai kane thn grammh

Κώδικας: Επιλογή όλων

if &#40;$_SESSION&#91;$score&#93;==""&#41; &#123; $_SESSION&#91;$score&#93;=0; &#125;

Akis_gr49
Δημοσιεύσεις: 266
Εγγραφή: 07 Ιουν 2007 13:49

Πώς να πάρω random αποτέλεσμα από την βάση

Δημοσίευση από Akis_gr49 » 09 Δεκ 2007 03:30

Το σκορ σας είναι στα 3


Τώρα δεν βγάζει καθόλου το 0

Αντικατέστησα το

Κώδικας: Επιλογή όλων

 $score=0; 
με το

Κώδικας: Επιλογή όλων

if &#40;$_SESSION&#91;$score&#93;==""&#41; &#123; $_SESSION&#91;$score&#93;=0; &#125;

Άβαταρ μέλους
Alice_Cooper
Δημοσιεύσεις: 1947
Εγγραφή: 11 Μάιος 2007 00:33
Τοποθεσία: Ioannina
Επικοινωνία:

Πώς να πάρω random αποτέλεσμα από την βάση

Δημοσίευση από Alice_Cooper » 09 Δεκ 2007 03:45

Giannhs_gr έγραψε:Το σκορ σας είναι στα 3


Τώρα δεν βγάζει καθόλου το 0

Αντικατέστησα το

Κώδικας: Επιλογή όλων

 $score=0; 
με το

Κώδικας: Επιλογή όλων

if &#40;$_SESSION&#91;$score&#93;==""&#41; &#123; $_SESSION&#91;$score&#93;=0; &#125;
xmmm
vale prota session_start();

pano apo to

Κώδικας: Επιλογή όλων

$erotiseis = 3;
aspoume...epita ekei pou exeis

Κώδικας: Επιλογή όλων

if &#40;$_SESSION&#91;$score&#93;==""&#41; &#123; $_SESSION&#91;$score&#93;=0; &#125;
kane to

Κώδικας: Επιλογή όλων

if &#40;$_SESSION&#91;'score'&#93;==""&#41; &#123; $_SESSION&#91;'score'&#93;=0; &#125;
kai enoeitai opou exeis $score kane to $_SESSION['score']

Akis_gr49
Δημοσιεύσεις: 266
Εγγραφή: 07 Ιουν 2007 13:49

Πώς να πάρω random αποτέλεσμα από την βάση

Δημοσίευση από Akis_gr49 » 09 Δεκ 2007 04:08

Βγάζει τα εξής λάθη

Κώδικας: Επιλογή όλων

Warning&#58; session_start&#40;&#41; &#91;function.session-start&#93;&#58; Cannot send session cookie - headers already sent by &#40;output started at G&#58;\xampplite\htdocs\myphp\quiz\exams.php&#58;8&#41; in G&#58;\xampplite\htdocs\myphp\quiz\exams.php on line 12

Warning&#58; session_start&#40;&#41; &#91;function.session-start&#93;&#58; Cannot send session cache limiter - headers already sent &#40;output started at G&#58;\xampplite\htdocs\myphp\quiz\exams.php&#58;8&#41; in G&#58;\xampplite\htdocs\myphp\quiz\exams.php on line 12
Με κάποιες μικροδιορθώσεις που έκανα δεν γίνεται κάτι, δεν νομίζω να είναι το session πάντως.

Κάτι πρέπει να κάνουμε με το

Κώδικας: Επιλογή όλων

$score = 0;


δεν παίρνει τον αριθμό!

Αν βάλω χειροκίνητα έναν αριθμό παίζει μια χαρά!!

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης