10/10/2018, 11:04

Sử lý trường hợp này thế nào hả các bác

Em mới học PHP và đang gặp 1 vấn đề mong các bác chỉ giáo :

em muốnXây dựng hệ thống bình chọn nhiều câu hỏi bằng PHP và MYSQL ( ở đây em test là 2 ) :

trong mysql em có 2 bảng là :
answer với các trường là :
aid - qid - atitle - traloi
question với các trường là :
qid - qtitle
2 bảng này tương tác với nhau thông qua trường qid . Có nghĩa là với câu hỏi có trường qid tại bảng question bằng 1 chẳng hạn thì sẽ có lần lượt các câu trả lời tương ứng tại bảng answer với qid ( ở bảng answer ) tương ứng là 1 với các giá trị của câu trả aid tăng dần theo số lượng câu trả lời

ví dụ :
tại bảng Question có câu hỏi 1 :
web đẹp ko vs qid = 1
thì ở bảng Answer có câu trả lời :
đẹp với qid = 1 , aid =1
xấu với qid = 1, aid = 2

tại bảng Question có câu hỏi 2 :
chức năng tốt chứ vs qid = 2
thì ở bảng answer có câu trả lời :
tốt với qid = 2 , aid = 3
ko với qid = 2 , aid = 4

..........

khi đó em dùng lệnh SQL select và hàm while( để lấy ra câu hỏi và câu trả lời tương ứng ) và có 1 form như sau :
PHP Code:
$conn=mysql_connect('localhost','root',');
    
mysql_select_db('mininews',$conn);
        
$dbq="select * from question";
        
$queryq=mysql_query($dbq);
        echo 
"<form action='poll2.php' method='post'>";
        while(
$rowq=mysql_fetch_array($queryq)){
            
$qid=$rowq***91;'qid'***93;;
            
$qtitle=$rowq***91;'qtitle'***93;;
                echo 
"Câu hỏi ".$qid." : ".$qtitle."<br>";
            
// đoạn này xuất ra câu trả lời
            
$dba="select * from a where qid='$qid'";
            
$querya=mysql_query($dba);
            while(
$rowa=mysql_fetch_array($querya)){
                
$aid=$rowa***91;'aid'***93;;
                
$atitle=$rowa***91;'atitle'***93;;
                
$ab=$rowa***91;'qid'***93;;
                    echo 
"<input type='radio' name='$ab' value='ykien_$aid'>".$aid.".".$atitle."<br>"
vấn đề em gặp phải ở đây là tại sao khi em lấy $_POST['$ab']; type radio thì giá trị trả về lại là rỗng

giờ có cách nào để em select được cái giá trị ở
PHP Code:
<input type='radio' name='$ab' value='ykien_$aid'
để dùng hàm update trong sql thay đổi giá trị cho trường traloi ( nghĩa là em chọn câu trả lời nào thì vs aid tương ứng trường traloi sẽ tự động tăng lên 1 vs 1 lần chọn )

Code em viết như dưới đây ... chả biết đúng sai thế nào, các bác xem và chỉ cho em với ... em cám ơn các bác nhiều , em ko ngại nghe mắng đâu ạ
PHP Code:
<?php
    $conn
=mysql_connect('localhost','root',');
    
mysql_select_db('mininews',$conn);
        
$dbq="select * from question";
        
$queryq=mysql_query($dbq);
        echo 
"<form action='poll2.php' method='post'>";
        while(
$rowq=mysql_fetch_array($queryq)){
            
$qid=$rowq***91;'qid'***93;;
            
$qtitle=$rowq***91;'qtitle'***93;;
                echo 
"Câu hỏi ".$qid." : ".$qtitle."<br>";
            
// đoạn này xuất ra câu trả lời
            
$dba="select * from a where qid='$qid'";
            
$querya=mysql_query($dba);
            while(
$rowa=mysql_fetch_array($querya)){
                
$aid=$rowa***91;'aid'***93;;
                
$atitle=$rowa***91;'atitle'***93;;
                
$ab=$rowa***91;'qid'***93;;
                    echo 
"<input type='radio' name='$ab' value='ykien_$aid'>".$aid.".".$atitle."<br>";
                    
$ghi=$_POST***91;'$ab'***93;;
                    if(isset(
$_POST***91;'submit'***93;) && $ghi != ""){
                    
$sl="select * from a where qid='$ghi'";
                    
$querysl=mysql_query($sl);
                    
$rowabc=mysql_fetch_array($querysl);
                    
$tang=$rowabc***91;'traloi'***93;;
                    
$qqq=$rowabc***91;'qid'***93;;
                    
$tang++;
                    
$chay="update a set traloi='$tang' where qid='$qqq'";
                    
$querych=mysql_query($chay);
                    echo 
"bạn đã chọn thành công";
                    }
            }
        }

            echo 
"<input type='submit' name='submit' value='chấm điểm'/>";
            echo 
"</form>";
            
?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
thuyduongcd viết 13:19 ngày 10/10/2018
Chỗ này
$_POST['$ab']
Sau khi submit qua trang poll2.php thì $ab="" cho nên $_POST['$ab']=null
mrtungs viết 13:17 ngày 10/10/2018
Được gửi bởi thuyduongcd
Chỗ này

Sau khi submit qua trang poll2.php thì $ab="" cho nên $_POST['$ab']=null
Cám ơn bác ạ ...
vậy giờ em làm thế nào để cái POST đó lấy được giá trị ạ
giá trị em muốn ở đây là trường qid để em sử dụng lệnh select ở bên dưới
mong bác bỏ chút time chỉ giúp em với ạ :P

[=========> Bổ sung bài viết <=========]

Có cách nào để cái name trong form sẽ lần lượt là name = 1 và name = 2 không ạ ( trường qid đó ạ )
PHP Code:
echo "<input type='radio' name='$ab' value='ykien_$aid'>".$aid.".".$atitle."<br>"
runrunforest viết 13:05 ngày 10/10/2018
cách lấy value từ form mà không biết trươc input name:

$fields = array('email', 'password', 'password_confirm', 'username', 'name', '***', 'date', 'month', 'year', 'land_line', 'mobile', 'address', 'city', 'region'); // tên của tất cả các input có thể có.

foreach($fields as $field)
{
${$field} = mysql_real_escape_string(trim($_POST[$field]));
}
mrtungs viết 13:12 ngày 10/10/2018
Được gửi bởi runrunforest
cách lấy value từ form mà không biết trươc input name:

$fields = array('email', 'password', 'password_confirm', 'username', 'name', '***', 'date', 'month', 'year', 'land_line', 'mobile', 'address', 'city', 'region'); // tên của tất cả các input có thể có.

foreach($fields as $field)
{
${$field} = mysql_real_escape_string(trim($_POST[$field]));
}
hjx ... em đang không hiểu nhiều về mảng bác ạ ...
với cả , em đang muốn hiểu được tại sao em lại không thể lấy được giá trị từ form .... mong bác đừng thấy em ngu mà nản ,giúp em tý nữa ạ
Bài liên quan
0