הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   עזרה ב PHP ... (https://hosts.co.il/forums/showthread.php?t=43493)

X-T 13-04-07 13:57

עזרה ב PHP ...
 
אוקיי אני מנסה להכין מערכת ששואל שאלות ב PHP , יש לי קובץ פונקציות שעשיתי שכרגע יש פונקציה של הוספת שאלות, אני מתכנן להוסיף עריכה ומחיקה.

עכשיו אני בדף שמציג את השאלות וקצת לא מסתדר

שימו לב

PHP קוד:

<form method="POST" action="check.php">
<?

$query 
mysql_query("SELECT * FROM triv");
while(
$r mysql_fetch_array($query)){
$id $r['ID'];
$ans1 $r['answer1'];
$ans2 $r['answer2'];
$ans3 $r['answer3'];
$ans $r['answer'];
$quetion $r['quetion'];

echo 
'<br>Quetion num #'.$id.' \ '.$quetion.' ';
for(
$i=1;$i<=3;$i++){
echo 
' <br><input type="radio" value="'.$i.'" name="'.$id.'">  ';
}    
}
echo 
'<br><input type="submit" name="submit">';
?>
</form>

עכשיו אני רוצה להציג ב-FOR את שם השאלה, עכשיו אני לא יכולה לעשות $ans1,$ans2,$ans3...
ניסיתי לעשות משהו בסיגנון
PHP קוד:

$ans['$i'

אשמח לעזרה וטיפים!

syn 13-04-07 14:05

תנסה לעשות בדיוק אותה לולאה לשאלה, רק עם משתנה שונה, כי i השתמשת כבר.

Meir 13-04-07 14:07

אם הבנתי נכון אז במקום להציב את הנתונים מהמסד לתוך משתנה פשוט תעשה ככה:

PHP קוד:

$r['answer'.$i]; 

או שתשתמש בeval ככה:

PHP קוד:

eval("\$ans".$i." = 'something';"); 


X-T 13-04-07 14:07

אני צריך משהו יעיל , וניסיתי עם לולאה, לא הלך.

דרך אגב מאור, עשיתי ככה

$ansx = eval("\$ans".$i." = 'SOMETHING';");

וניסיתי להדפיס, לא מציג כלום.

Meir 13-04-07 14:14

כי לא עושים ככה, כבר הצבתי ערך בתוך המשתנה רק כדי להביא לך דוגמא לאיך משתמשים בזה בעיקרון זה מה שאתה צריך לעשות:

PHP קוד:

<?php

$ans1 
'asdasd';
$ans2 'assdfxcvdasd';
$ans3 'asdasjfghssaffd';

for(
$i 1$i <= 3$i++)
{
    eval(
"echo \$ans".$i.";");
    echo 
"\n\n";
}

?>


X-T 13-04-07 14:32

תודה רבה.

X-T 13-04-07 14:43

מצטער על הדאבל, יש לי עוד שאלה.
למה הפונקציה לא פועל פה?
PHP קוד:

function addq($qu,$an1,$an2,$an3,$ans){
$add mysql_query("INSERT into triv(quetion,answer1,answer2,answer3,ans) values ('$qu','$an1','$an2','$an3','$ans')" or die(mysql_error()));
if(
$add){
echo 
"1";
}
else {
echo 
"0";
}



Meir 13-04-07 14:48

זה לא פועל כי השאלתיה לא טובה

PHP קוד:

mysql_query("INSERT into triv(quetion,answer1,answer2,answer3,ans) values ('$qu','$an1','$an2','$an3','$ans');") or die(mysql_error()); 

תתקן לזאת

X-T 13-04-07 16:40

עוד שאלה על הדרך, אני עובד על קובץ CHECK.php שמריץ בדיקה על התשובות שהוכנסו...
אני רוצה לעשות את הבדיקה ב WHILE
עכשיו זה ככה:
PHP קוד:

$query mysql_query("SELECT * FROM triv");
$asknum mysql_num_rows($query);
while(
$r mysql_fetch_array($query)){
$id $r['ID'];
$ans =$r['ans'];
$getans $_POST[$id];
$score 0;

echo 
$name;


הבעיה כרגע היא פה
PHP קוד:

$getans $_POST[$id]; 

איך לעזאזל אני קולט את ה POST לפי ה ID שנמצאים במערכת? ואיך אני משווה את ההתשובה שנמצאות בדיוק איפה שה ID הזה נמצא ומחשב ל SCORE ואז נותן לו ציון לפי אחוזים?

X-T 13-04-07 18:01

מצטער לא יכול לערוך אז ההודעה היא כזאת
אוקיי אנשים, אני כרגע עובד על קובץ CHECK שיבדוק למעשה את השובות שהוכנסו ע"י הגולש בדף הראשי.

הקוד שלי
PHP קוד:

<?

$query 
mysql_query("SELECT * FROM triv order by ID DESC");
while(
$r mysql_fetch_array($query)){
$id $r['ID'];
$ans1 $r['answer1'];
$ans2 $r['answer2'];
$ans3 $r['answer3'];
$ansx $r['answer'];
$quetion $r['quetion'];


echo 
'<br>Quetion num #'.$id.' \ '.$quetion.' ';
for(
$i=1;$i<=3;$i++){
$xt = eval("\$ans".$i.";");  

echo 
'<br><input type="radio" value="'.$xt.'" name='.$id.'>';
eval(
"echo \$ans".$i.";");

}    
}
echo 
'<br><input type="submit" name="submit">';
?>

הבעיה היא פה
PHP קוד:

$xt = eval("\$ans".$i.";"); 

אני מנסה לקלוט את התשובה עצמה ל VALUE ולא ממש הולך :\


כל הזמנים הם GMT +2. הזמן כעת הוא 10:51.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ