2013-03-17 3 views
1

У меня небольшие ошибки, и мне было интересно, может ли кто-нибудь помочь!show checkbox data mysql

Я создаю систему посещаемости для колледжа.

Этот сценарий:

Студент входит в систему успешно, а затем хочет, чтобы просмотреть его/ее присутствие для конкретного курса.

Проблема: Я хочу, чтобы показать мне, как проверить и uncheked данных из MySQL, в настоящее время он показывает пустой флажок (если его означала для проверки) и на данный момент он показывает многочисленные дублированные данные, можно я мог бы ограничить это, скажем, например, показать одну запись в неделю, отображать все данные и дублировать ее.

<?php 

$q3= "SELECT attendance.week_number_id, attendance.week_number, courses.course_id, students.student_id, course_attendance.present, course_attendance.notes 
FROM courses, course_attendance, attendance, students 
WHERE course_attendance.student_id= ".$_SESSION['student_id']." AND course_attendance.course_id= courses.course_id AND course_attendance.week_id= attendance.week_number_id AND courses.course_id='101' 
"; 


$result = mysql_query($q3) or die(mysql_error()); 

echo "<table border='1' align='center'><tr> <th><strong>Week Number</strong></th> <th><strong>Present</strong></th> <th><strong>Notes</strong></th> </tr> "; 
while($row = mysql_fetch_assoc($result)) 
{ 
    extract($row); 
echo 

"</td><td width='200' align='center'>" .$row['week_number']. 
"</td><td width='400' align='center'><input type='checkbox' name='present'" .$row['present']. 
"</td><td width='400' align='center'>" .$row['notes']. 
"</td><tr>"; 
} 
echo "</table>"; 
?> 

Примечание: Я успешно подключен к базе данных, MySQL запущен и работает, я использую сессии, в настоящее время он показывает данные для студента, но не показывает существующую проверку или uncheked значения, флажок пуст ,

Может кто-нибудь помочь

+0

Где определена переменная $ checked? – Anonymous

+0

извините его не определено, его $ row ['present'], поле «present» в mySql является int и определяет 1 для присутствия и 0 для отсутствия, я хочу, чтобы он отображал все данные, независимо от того, является ли его 1 или 0, но в чекбоксе –

ответ

0

В коде, вы не правильно определяя флажок, чтобы проверить. Сделать код, который добавляет checked="true" если 'настоящее' поле 1.

<?php 

    $q3 = " SELECT attendance.week_number_id, attendance.week_number, courses.course_id, students.student_id, course_attendance.present, course_attendance.notes 
      FROM courses, course_attendance, attendance, students 
      WHERE course_attendance.student_id= ".$_SESSION['student_id']." AND course_attendance.course_id= courses.course_id AND course_attendance.week_id= attendance.week_number_id AND courses.course_id='101'"; 


    $result = mysql_query($q3) or die(mysql_error()); 

    echo " 
     <table border='1' align='center'> 
      <tr> 
       <th><strong>Week Number</strong></th> 
       <th><strong>Present</strong></th> 
       <th><strong>Notes</strong></th> 
      </tr> 
     "; 

    while($row = mysql_fetch_assoc($result)) { 
     $checked = ''; 
     if($row['present'] == 1) { 
      $checked = ' checked="true"'; 
     } 

     echo " 
      <tr> 
       <td width='200' align='center'>" . $row['week_number'] . "</td> 
       <td width='400' align='center'> 
        <input type='checkbox' name='present'" .$checked . "/> 
       </td> 
       <td width='400' align='center'>" . $row['notes'] . "</td> 
      </tr> 
     "; 
    } 

    echo "</table>"; 

?> 
+0

Я собираюсь попробовать этот код сейчас поблагодарить u даст вам знать, если он работает –

+0

данных пока нет: S –

+0

Есть ошибки? – Anonymous

0

Ваш

echo 
    "</td><td width='200' align='center'>" .$row['week_number']. 
    "</td><td width='400' align='center'><input type='checkbox' name='present'" .$row['present']. 
    "</td><td width='400' align='center'>" .$row['notes']. 
    "</td><tr>"; 

заявление должно быть

$present = ""; 
if(.$row['present']==1) 
{ 
    $present = "checked =checked/>";  
} 
else 
{ 
    $present = "/>";  
} 

эхо "". $ Строки [ 'week_number «]. "". $ Row ['notes']. "";

Надеюсь, это вам поможет. Thanks

+0

Вместо того, чтобы использовать больше строк, почему бы просто не сделать небольшой кусок кода, который решает, когда добавлять check = "checked" к нему только с одним блоком HTML-кода? – Anonymous

+0

Да ... Это тоже можно сделать ... Ну, я редактирую свой ответ ... –

+0

Спасибо, я собираюсь попробовать это сейчас –

0
$checked = ''; 
if($present == 1) { 
    $checked = 'checked="checked"'; 
} 

echo "</td><td width='200' align='center'>" .$row['week_number']. 
"</td><td width='400' align='center'><input type='checkbox' name='present'" .$checked . "/>" . 
"</td><td width='400' align='center'>" .$row['notes']. 
"</td><tr>"; 
} 
echo "</table>"; 

Попробуйте.