mysqli_fetch_assoc отправляет первую строку, когда я использую ее с формой HTML - PullRequest
0 голосов
/ 31 марта 2019

Я напечатал таблицу, содержащую данные об учениках и их посещаемости, с помощью HTML / PHP / Mysql, и теперь я пытаюсь использовать форму с переключателем для непосредственного заполнения посещаемости.В то время как я использую функцию «mysqli_fetch_assoc», и она работает нормально на всем, кроме формы, где она принимает только первую строку, вот код:

<?php
require_once("connection.php");
$req="select * from ETUDIANTS";
$rs=mysqli_query($conn,$req) or (die(mysql_error()));
?>

<?php while ($ET=mysqli_fetch_assoc($rs)) { ?>
                <tr>
                    <td><?php echo($ET['ID_ETUDIANT']) ?> </td>
                    <td><?php echo($ET['NOM']) ?> </td>
                    <td><?php echo($ET['PRENOM']) ?> </td>
                    <td><?php echo($ET['EMAIL']) ?> </td>
                    <td><?php echo($ET['DATE_NAISS']) ?> </td>
                    <td><?php echo($ET['Prez']) ?> </td> 
                    <?php $cod=($ET['CODE'])?>
                    <td> <form method ="post" action ="attendance.php?code=<?php echo($cod) ?>">
                    <input type="radio" name="Prez" value="1" />Present
                     <input type="radio" name="Prez" value="0" />Absent
                    <input type = "submit" value ="Enregistrer" > 
                </td> 
                </form>  
                    <td><a href ="supprimerEtudiant.php?code=<?php echo($ET['CODE']) ?>">Delete</a> </td> 

            </p>
            <?php  }  ?>

URL-адрес удаления загружает код нормально, но дляпосещаемость не такая, вот файл serveance.php:

<?php 
require_once("connection.php");
$code=$_GET['code'];
$pres = $_POST['Prez'];
$req = "UPDATE ETUDIANTS SET Prez=$pres  WHERE (CODE=$code)";
mysqli_query($conn,$req) or die ("error frr"); 
header("location:index.php");   

?>

(извините за отступы и ошибки, спасибо за ответы!)

Ответы [ 2 ]

0 голосов
/ 31 марта 2019

Ваш тег </form> находится не в том месте (за пределами содержащего его тд)

Кроме того, вы не учитываете данные своего результата при печати переключателя, вам необходимо использоватьchecked свойство, если применимо

Вы также закрываете абзац </p> внутри цикла для каждой строки, и я не вижу, где вы его открываете.

также вы НЕ закрываетестрока таблицы в цикле

<?php while ($ET=mysqli_fetch_assoc($rs)) { ?>
                <tr>
                    <td><?php echo($ET['ID_ETUDIANT']) ?> </td>
                    <td><?php echo($ET['NOM']) ?> </td>
                    <td><?php echo($ET['PRENOM']) ?> </td>
                    <td><?php echo($ET['EMAIL']) ?> </td>
                    <td><?php echo($ET['DATE_NAISS']) ?> </td>
                    <td><?php echo($ET['Prez']) ?> </td> 
                    <?php $cod=($ET['CODE'])?>
                    <td> 
                      <form method ="post" action ="attendance.php?code=<?php echo($cod) ?>">
                         <input type="radio" name="Prez" value="1" <?php if ($ET['Prez'] == 1) echo ('checked') ?>/>Present
                         <input type="radio" name="Prez" value="0" <?php if ($ET['Prez'] == 0) echo ('checked') ?> />Absent
                         <input type = "submit" value ="Enregistrer" > 
                      </form>  
                    </td> 
                    <td><a href ="supprimerEtudiant.php?code=<?php echo($ET['CODE']) ?>">Delete</a> </td> 
                </tr>
            <?php  }  ?>

вам может понадобиться немного подправить код для соответствия значениям вашей БД и именам полей

0 голосов
/ 31 марта 2019

По предложению пользователя, который удалил свой комментарий, решение состоит в том, чтобы удалить "?code=<?php echo($cod)>?> из URL-адреса формы и добавить <input type="hidden" name="code" value="<?php echo($cod) ?>"> и извлечь его через $code=$_POST['code'];

Спасибо, кто ответил!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...